diff options
Diffstat (limited to 'openssl')
-rw-r--r-- | openssl/trunk/crypto/x509v3/v3_addr.c | 83 | ||||
-rw-r--r-- | openssl/trunk/crypto/x509v3/v3_addr.h | 84 | ||||
-rw-r--r-- | openssl/trunk/crypto/x509v3/v3_asid.c | 6 | ||||
-rw-r--r-- | openssl/trunk/crypto/x509v3/v3_asid.h | 70 | ||||
-rw-r--r-- | openssl/trunk/crypto/x509v3/x509v3.h | 2 |
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 |