aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--openssl/trunk/crypto/x509v3/v3_addr.c83
-rw-r--r--openssl/trunk/crypto/x509v3/v3_addr.h84
-rw-r--r--openssl/trunk/crypto/x509v3/v3_asid.c6
-rw-r--r--openssl/trunk/crypto/x509v3/v3_asid.h70
-rw-r--r--openssl/trunk/crypto/x509v3/x509v3.h2
5 files changed, 45 insertions, 200 deletions
diff --git a/openssl/trunk/crypto/x509v3/v3_addr.c b/openssl/trunk/crypto/x509v3/v3_addr.c
index d50d5663..1d076564 100644
--- a/openssl/trunk/crypto/x509v3/v3_addr.c
+++ b/openssl/trunk/crypto/x509v3/v3_addr.c
@@ -25,6 +25,8 @@
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
+#include <sys/types.h>
+#include <sys/socket.h>
#include "cryptlib.h"
#include <openssl/conf.h>
#include <openssl/asn1.h>
@@ -64,7 +66,6 @@ IMPLEMENT_ASN1_FUNCTIONS(IPAddressRange)
IMPLEMENT_ASN1_FUNCTIONS(IPAddressOrRange)
IMPLEMENT_ASN1_FUNCTIONS(IPAddressChoice)
IMPLEMENT_ASN1_FUNCTIONS(IPAddressFamily)
-IMPLEMENT_ASN1_FUNCTIONS(IPAddrBlocks)
/*
* How much buffer space do we need for a raw address?
@@ -103,7 +104,7 @@ static void addr_expand(unsigned char *addr,
/*
* Extract the prefix length from a bitstring.
*/
-#define addr_prefixlen(bs) ((bs)->length * 8 - ((bs)->flags & 7))
+#define addr_prefixlen(bs) ((int) ((bs)->length * 8 - ((bs)->flags & 7)))
/*
* i2r handler for one address bitstring.
@@ -120,20 +121,20 @@ static int i2r_address(BIO *out,
switch (afi) {
case IANA_AFI_IPV4:
addr_expand(addr, bs, 4, fill);
- if (inet_ntop(AF_INET, addr, buf, sizeof(buf)) == NULL)
+ if (!inet_ntop(AF_INET, addr, buf, sizeof(buf)))
return 0;
BIO_puts(out, buf);
break;
case IANA_AFI_IPV6:
addr_expand(addr, bs, 16, fill);
- if (inet_ntop(AF_INET6, addr, buf, sizeof(buf)) == NULL)
+ if (!inet_ntop(AF_INET6, addr, buf, sizeof(buf)))
return 0;
BIO_puts(out, buf);
break;
default:
for (i = 0; i < bs->length; i++)
BIO_printf(out, "%s%02x", (i > 0 ? ":" : ""), bs->data[i]);
- BIO_printf(out, "[%d]", bs->flags & 7);
+ BIO_printf(out, "[%d]", (int) (bs->flags & 7));
break;
}
return 1;
@@ -149,7 +150,7 @@ static int i2r_IPAddressOrRanges(BIO *out,
{
int i;
for (i = 0; i < sk_IPAddressOrRange_num(aors); i++) {
- const IPAddressOrRange *aor = sk_IPAddressOrRange_num(aors, i);
+ const IPAddressOrRange *aor = sk_IPAddressOrRange_value(aors, i);
BIO_printf(out, "%*s", indent, "");
switch (aor->type) {
case IPAddressOrRange_addressPrefix:
@@ -174,14 +175,14 @@ static int i2r_IPAddressOrRanges(BIO *out,
* i2r handler for an IPAddrBlocks extension.
*/
static int i2r_IPAddrBlocks(X509V3_EXT_METHOD *method,
- const void *ext,
+ void *ext,
BIO *out,
- const int indent)
+ int indent)
{
const IPAddrBlocks *addr = ext;
int i;
- for (i = 0; i < sk_IPAddrBlocks_num(addr); i++) {
- const IPAddressFamily *f = sk_IPAddrBlocks_value(addr, i);
+ for (i = 0; i < sk_IPAddressFamily_num(addr); i++) {
+ IPAddressFamily *f = sk_IPAddressFamily_value(addr, i);
const unsigned afi = ((f->addressFamily->data[0] << 8) |
(f->addressFamily->data[1]));
switch (afi) {
@@ -344,25 +345,25 @@ static int range_should_be_prefix(const unsigned char *min,
* Construct a prefix.
*/
static int make_addressPrefix(IPAddressOrRange **result,
- const unsigned char *addr,
- const int prefixlength)
+ unsigned char *addr,
+ const int prefixlen)
{
- int bytelen = (prefixlength + 7) / 8, bitlen = prefixlen % 8;
+ int bytelen = (prefixlen + 7) / 8, bitlen = prefixlen % 8;
IPAddressOrRange *aor = IPAddressOrRange_new();
if (aor == NULL)
return 0;
aor->type = IPAddressOrRange_addressPrefix;
- if ((aor->addressPrefix = ASN1_BIT_STRING_new()) == NULL)
+ if ((aor->u.addressPrefix = ASN1_BIT_STRING_new()) == NULL)
goto err;
- if (!ASN1_BIT_STRING_set(bs, addr, bytelen))
+ if (!ASN1_BIT_STRING_set(aor->u.addressPrefix, addr, bytelen))
goto err;
- bs->flags &= ~7;
- bs->flags |= ASN1_STRING_FLAG_BITS_LEFT;
+ aor->u.addressPrefix->flags &= ~7;
+ aor->u.addressPrefix->flags |= ASN1_STRING_FLAG_BITS_LEFT;
if (bitlen > 0) {
- bs->data[bytelen - 1] &= ~(0xFF >> bitlen);
- bs->flags |= 8 - bitlen;
+ aor->u.addressPrefix->data[bytelen - 1] &= ~(0xFF >> bitlen);
+ aor->u.addressPrefix->flags |= 8 - bitlen;
}
*result = aor;
@@ -379,15 +380,15 @@ static int make_addressPrefix(IPAddressOrRange **result,
* the rest of the code considerably.
*/
static int make_addressRange(IPAddressOrRange **result,
- const unsigned char *min_,
- const unsigned char *max_,
+ unsigned char *min,
+ unsigned char *max,
const unsigned length)
{
IPAddressOrRange *aor;
int i, prefixlen;
- if ((prefixlen = range_should_be_prefix(min_, max_, length)) >= 0)
- return make_addressPrefix(result, min_, prefixlen);
+ if ((prefixlen = range_should_be_prefix(min, max, length)) >= 0)
+ return make_addressPrefix(result, min, prefixlen);
if ((aor = IPAddressOrRange_new()) == NULL)
return 0;
@@ -399,15 +400,14 @@ static int make_addressRange(IPAddressOrRange **result,
if (aor->u.addressRange->min == NULL || aor->u.addressRange->max == NULL)
goto err;
- i = length;
- while (i > 0 && min_[i - 1] == 0x00)
- --i;
- if (!ASN1_BIT_STRING_set(aor->u.addressRange->min, min_, i))
+ for (i = length; i > 0 && min[i - 1] == 0x00; --i)
+ ;
+ if (!ASN1_BIT_STRING_set(aor->u.addressRange->min, min, i))
goto err;
aor->u.addressRange->min->flags &= ~7;
aor->u.addressRange->min->flags |= ASN1_STRING_FLAG_BITS_LEFT;
if (i > 0) {
- unsigned char b = min_[i - 1];
+ unsigned char b = min[i - 1];
int j = 1;
while (j < 8 && (b & (0xFF >> j)) != 0)
++j;
@@ -415,15 +415,14 @@ static int make_addressRange(IPAddressOrRange **result,
aor->u.addressRange->min->flags |= j;
}
- i = length;
- while (i > 0 && aor->u.addressRange->max[i - 1] == 0xFF)
- --i;
- if (!ASN1_BIT_STRING_set(aor->u.addressRange->max, max_, i))
+ for (i = length; i > 0 && max[i - 1] == 0xFF; --i)
+ ;
+ if (!ASN1_BIT_STRING_set(aor->u.addressRange->max, max, i))
goto err;
aor->u.addressRange->max->flags &= ~7;
aor->u.addressRange->max->flags |= ASN1_STRING_FLAG_BITS_LEFT;
if (i > 0) {
- unsigned char b = max_[i - 1];
+ unsigned char b = max[i - 1];
int j = 1;
while (j < 8 && (b & (0xFF >> j)) != (0xFF >> j))
++j;
@@ -455,7 +454,7 @@ static IPAddressFamily *make_IPAddressFamily(IPAddrBlocks *addr,
if (safi != NULL)
key[2] = *safi & 0xFF;
for (i = 0; i < sk_IPAddressFamily_num(addr); i++) {
- *f = sk_IPAddressFamily_value(addr, i);
+ f = sk_IPAddressFamily_value(addr, i);
if (!memcmp(f->addressFamily, key, keylen))
return f;
}
@@ -497,7 +496,7 @@ static int addr_add_inherit(IPAddrBlocks *addr,
}
/*
- * Construct an IPAddressOrRanges sequence, or return an existing one.
+ * Construct an IPAddressOrRange sequence, or return an existing one.
*/
static IPAddressOrRanges *make_prefix_or_range(IPAddrBlocks *addr,
const unsigned afi,
@@ -536,12 +535,12 @@ static IPAddressOrRanges *make_prefix_or_range(IPAddrBlocks *addr,
static int addr_add_prefix(IPAddrBlocks *addr,
const unsigned afi,
const unsigned *safi,
- const unsigned char *addr,
+ unsigned char *a,
const int prefixlen)
{
IPAddressOrRanges *aors = make_prefix_or_range(addr, afi, safi);
IPAddressOrRange *aor;
- if (aors == NULL || !make_addressPrefix(&aor, addr, prefixlen))
+ if (aors == NULL || !make_addressPrefix(&aor, a, prefixlen))
return 0;
if (sk_IPAddressOrRange_push(aors, aor))
return 1;
@@ -555,8 +554,8 @@ static int addr_add_prefix(IPAddrBlocks *addr,
static int addr_add_range(IPAddrBlocks *addr,
const unsigned afi,
const unsigned *safi,
- const unsigned char *min,
- const unsigned char *max)
+ unsigned char *min,
+ unsigned char *max)
{
IPAddressOrRanges *aors = make_prefix_or_range(addr, afi, safi);
IPAddressOrRange *aor;
@@ -690,8 +689,8 @@ static void *v2i_IPAddrBlocks(struct v3_ext_method *method,
{
static const char v4addr_chars[] = "0123456789.";
static const char v6addr_chars[] = "0123456789.:abcdefABCDEF";
+ const char *addr_chars;
IPAddrBlocks *addr = NULL;
- char *addr_chars;
int i;
if ((addr = sk_IPAddressFamily_new(IPAddressFamily_cmp)) == NULL) {
@@ -723,9 +722,9 @@ static void *v2i_IPAddrBlocks(struct v3_ext_method *method,
}
if (safi != NULL) {
- safi = strtoul(val->value, &s, 0);
+ *safi = strtoul(val->value, &s, 0);
s += strspn(s, " \t");
- if (safi > 0xFF || *s++ != ':') {
+ if (*safi > 0xFF || *s++ != ':') {
X509V3err(X509V3_F_V2I_IPADDRBLOCKS, X509V3_R_EXTENSION_VALUE_ERROR);
X509V3_conf_err(val);
goto err;
diff --git a/openssl/trunk/crypto/x509v3/v3_addr.h b/openssl/trunk/crypto/x509v3/v3_addr.h
deleted file mode 100644
index e71f59b9..00000000
--- a/openssl/trunk/crypto/x509v3/v3_addr.h
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- * Copyright (C) 2006 American Registry for Internet Numbers ("ARIN")
- *
- * Permission to use, copy, modify, and distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND ARIN DISCLAIMS ALL WARRANTIES WITH
- * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
- * AND FITNESS. IN NO EVENT SHALL ARIN BE LIABLE FOR ANY SPECIAL, DIRECT,
- * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
- * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
- * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
- * PERFORMANCE OF THIS SOFTWARE.
- */
-
-/* $Id$ */
-
-/*
- * This will end up merged into some OpenSSL header file or another
- * (probably crypto/x509v3/x509v3.h) but for the moment I want it
- * under revision control.
- */
-
-#ifndef HEADER_V3_ADDR_H
-#define HEADER_V3_ADDR_H
-
-#include <openssl/asn1t.h>
-#include <openssl/err.h>
-#include <openssl/x509v3.h>
-
-typedef struct IPAddressRange_st {
- ASN1_BIT_STRING *min, *max;
-} IPAddressRange;
-
-#define IPAddressOrRange_addressPrefix 0
-#define IPAddressOrRange_addressRange 1
-
-typedef struct IPAddressOrRange_st {
- int type;
- union {
- ASN1_BIT_STRING *addressPrefix;
- IPAddressRange *addressRange;
- } u;
-} IPAddressOrRange;
-
-typedef STACK_OF(IPAddressOrRange) IPAddressOrRanges;
-DECLARE_STACK_OF(IPAddressOrRange)
-
-#define IPAddressChoice_inherit 0
-#define IPAddressChoice_addressesOrRanges 1
-
-typedef struct IPAddressChoice_st {
- int type;
- union {
- ASN1_NULL *inherit;
- IPAddressOrRanges *addressesOrRanges;
- } u;
-} IPAddressChoice;
-
-typedef struct IPAddressFamily_st {
- ASN1_OCTET_STRING *addressFamily;
- IPAddressChoice *ipAddressChoice;
-} IPAddressFamily;
-
-typedef STACK_OF(IPAddressFamily) IPAddrBlocks;
-DECLARE_STACK_OF(IPAddressFamily)
-
-DECLARE_ASN1_FUNCTIONS(IPAddressRange)
-DECLARE_ASN1_FUNCTIONS(IPAddressOrRange)
-DECLARE_ASN1_FUNCTIONS(IPAddressChoice)
-DECLARE_ASN1_FUNCTIONS(IPAddressFamily)
-
-/*
- * AFI values, assigned by IANA. It'd be nice to make the AFI
- * handling code totally generic, but there are too many little things
- * that would need to be defined for other address families for it to
- * be worth the trouble.
- */
-
-#define IANA_AFI_IPV4 1
-#define IANA_AFI_IPv6 2
-
-#endif /* HEADER_V3_ADDR_H */
diff --git a/openssl/trunk/crypto/x509v3/v3_asid.c b/openssl/trunk/crypto/x509v3/v3_asid.c
index 0e658710..a2b374e0 100644
--- a/openssl/trunk/crypto/x509v3/v3_asid.c
+++ b/openssl/trunk/crypto/x509v3/v3_asid.c
@@ -223,7 +223,7 @@ static void asid_canonize(ASIdentifierChoice *choice)
* Nothing to do for empty element or inheritance.
*/
if (choice == NULL || choice->type == ASIdentifierChoice_inherit)
- return 1;
+ return;
/*
* We have a list. Sort it.
@@ -235,8 +235,8 @@ static void asid_canonize(ASIdentifierChoice *choice)
* Now resolve any duplicates or overlaps.
*/
for (i = 0; i < sk_ASIdOrRange_num(choice->u.asIdsOrRanges) - 1; i++) {
- ASIdOrRange *a = sk_ASIdOrRange_num(choice->u.asIdsOrRanges, i);
- ASIdOrRange *b = sk_ASIdOrRange_num(choice->u.asIdsOrRanges, i + 1);
+ ASIdOrRange *a = sk_ASIdOrRange_value(choice->u.asIdsOrRanges, i);
+ ASIdOrRange *b = sk_ASIdOrRange_value(choice->u.asIdsOrRanges, i + 1);
/*
* Comparing ID a with ID b, remove a if they're equal.
diff --git a/openssl/trunk/crypto/x509v3/v3_asid.h b/openssl/trunk/crypto/x509v3/v3_asid.h
deleted file mode 100644
index 0f703a74..00000000
--- a/openssl/trunk/crypto/x509v3/v3_asid.h
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Copyright (C) 2006 American Registry for Internet Numbers ("ARIN")
- *
- * Permission to use, copy, modify, and distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND ARIN DISCLAIMS ALL WARRANTIES WITH
- * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
- * AND FITNESS. IN NO EVENT SHALL ARIN BE LIABLE FOR ANY SPECIAL, DIRECT,
- * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
- * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
- * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
- * PERFORMANCE OF THIS SOFTWARE.
- */
-
-/* $Id$ */
-
-/*
- * This will end up merged into some OpenSSL header file or another
- * (probably crypto/x509v3/x509v3.h) but for the moment I want it
- * under revision control.
- */
-
-#ifndef HEADER_V3_ASID_H
-#define HEADER_V3_ASID_H
-
-#include <openssl/asn1t.h>
-#include <openssl/err.h>
-#include <openssl/x509v3.h>
-
-typedef struct ASRange_st {
- ASN1_INTEGER *min, *max;
-} ASRange;
-
-#define ASIdOrRange_id 0
-#define ASIdOrRange_range 1
-
-typedef struct ASIdOrRange_st {
- int type;
- union {
- ASN1_INTEGER *id;
- ASRange *range;
- } u;
-} ASIdOrRange;
-
-typedef STACK_OF(ASIdOrRange) ASIdOrRanges;
-DECLARE_STACK_OF(ASIdOrRange)
-
-#define ASIdentifierChoice_inherit 0
-#define ASIdentifierChoice_asIdsOrRanges 1
-
-typedef struct ASIdentifierChoice_st {
- int type;
- union {
- ASN1_NULL *inherit;
- ASIdOrRanges *asIdsOrRanges;
- } u;
-} ASIdentifierChoice;
-
-typedef struct ASIdentifiers_st {
- ASIdentifierChoice *asnum, *rdi;
-} ASIdentifiers;
-
-DECLARE_ASN1_FUNCTIONS(ASRange)
-DECLARE_ASN1_FUNCTIONS(ASIdOrRange)
-DECLARE_ASN1_FUNCTIONS(ASIdentifierChoice)
-DECLARE_ASN1_FUNCTIONS(ASIdentifiers)
-
-#endif /* HEADER_V3_ASID_H */
diff --git a/openssl/trunk/crypto/x509v3/x509v3.h b/openssl/trunk/crypto/x509v3/x509v3.h
index c95b7f24..a9c52ca4 100644
--- a/openssl/trunk/crypto/x509v3/x509v3.h
+++ b/openssl/trunk/crypto/x509v3/x509v3.h
@@ -721,7 +721,7 @@ DECLARE_ASN1_FUNCTIONS(IPAddressFamily)
*/
#define IANA_AFI_IPV4 1
-#define IANA_AFI_IPv6 2
+#define IANA_AFI_IPV6 2
/*
* [sra] END KLUDGE