diff options
Diffstat (limited to 'src/lib/libcrypto/asn1/a_bitstr.c')
| -rw-r--r-- | src/lib/libcrypto/asn1/a_bitstr.c | 29 |
1 files changed, 1 insertions, 28 deletions
diff --git a/src/lib/libcrypto/asn1/a_bitstr.c b/src/lib/libcrypto/asn1/a_bitstr.c index 8076723de8..b985db60da 100644 --- a/src/lib/libcrypto/asn1/a_bitstr.c +++ b/src/lib/libcrypto/asn1/a_bitstr.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: a_bitstr.c,v 1.39 2023/07/05 21:23:36 beck Exp $ */ | 1 | /* $OpenBSD: a_bitstr.c,v 1.40 2023/07/28 10:30:16 tb Exp $ */ |
| 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
| 3 | * All rights reserved. | 3 | * All rights reserved. |
| 4 | * | 4 | * |
| @@ -162,33 +162,6 @@ ASN1_BIT_STRING_get_bit(const ASN1_BIT_STRING *a, int n) | |||
| 162 | } | 162 | } |
| 163 | LCRYPTO_ALIAS(ASN1_BIT_STRING_get_bit); | 163 | LCRYPTO_ALIAS(ASN1_BIT_STRING_get_bit); |
| 164 | 164 | ||
| 165 | /* | ||
| 166 | * Checks if the given bit string contains only bits specified by | ||
| 167 | * the flags vector. Returns 0 if there is at least one bit set in 'a' | ||
| 168 | * which is not specified in 'flags', 1 otherwise. | ||
| 169 | * 'len' is the length of 'flags'. | ||
| 170 | */ | ||
| 171 | int | ||
| 172 | ASN1_BIT_STRING_check(const ASN1_BIT_STRING *a, const unsigned char *flags, | ||
| 173 | int flags_len) | ||
| 174 | { | ||
| 175 | int i, ok; | ||
| 176 | |||
| 177 | /* Check if there is one bit set at all. */ | ||
| 178 | if (!a || !a->data) | ||
| 179 | return 1; | ||
| 180 | |||
| 181 | /* Check each byte of the internal representation of the bit string. */ | ||
| 182 | ok = 1; | ||
| 183 | for (i = 0; i < a->length && ok; ++i) { | ||
| 184 | unsigned char mask = i < flags_len ? ~flags[i] : 0xff; | ||
| 185 | /* We are done if there is an unneeded bit set. */ | ||
| 186 | ok = (a->data[i] & mask) == 0; | ||
| 187 | } | ||
| 188 | return ok; | ||
| 189 | } | ||
| 190 | LCRYPTO_ALIAS(ASN1_BIT_STRING_check); | ||
| 191 | |||
| 192 | int | 165 | int |
| 193 | ASN1_BIT_STRING_name_print(BIO *out, ASN1_BIT_STRING *bs, | 166 | ASN1_BIT_STRING_name_print(BIO *out, ASN1_BIT_STRING *bs, |
| 194 | BIT_STRING_BITNAME *tbl, int indent) | 167 | BIT_STRING_BITNAME *tbl, int indent) |
