RSA: Add OID definitions and helper function for hash algorithms
Signed-off-by: Jouni Malinen <j@w1.fi>
This commit is contained in:
parent
ab6d047405
commit
d3811845f3
2 changed files with 34 additions and 3 deletions
|
@ -1,6 +1,6 @@
|
||||||
/*
|
/*
|
||||||
* ASN.1 DER parsing
|
* ASN.1 DER parsing
|
||||||
* Copyright (c) 2006, Jouni Malinen <j@w1.fi>
|
* Copyright (c) 2006-2014, Jouni Malinen <j@w1.fi>
|
||||||
*
|
*
|
||||||
* This software may be distributed under the terms of the BSD license.
|
* This software may be distributed under the terms of the BSD license.
|
||||||
* See README for more details.
|
* See README for more details.
|
||||||
|
@ -11,6 +11,17 @@
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
#include "asn1.h"
|
#include "asn1.h"
|
||||||
|
|
||||||
|
struct asn1_oid asn1_sha1_oid = {
|
||||||
|
.oid = { 1, 3, 14, 3, 2, 26 },
|
||||||
|
.len = 6
|
||||||
|
};
|
||||||
|
|
||||||
|
struct asn1_oid asn1_sha256_oid = {
|
||||||
|
.oid = { 2, 16, 840, 1, 101, 3, 4, 2, 1 },
|
||||||
|
.len = 9
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
int asn1_get_next(const u8 *buf, size_t len, struct asn1_hdr *hdr)
|
int asn1_get_next(const u8 *buf, size_t len, struct asn1_hdr *hdr)
|
||||||
{
|
{
|
||||||
const u8 *pos, *end;
|
const u8 *pos, *end;
|
||||||
|
@ -140,7 +151,7 @@ int asn1_get_oid(const u8 *buf, size_t len, struct asn1_oid *oid,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void asn1_oid_to_str(struct asn1_oid *oid, char *buf, size_t len)
|
void asn1_oid_to_str(const struct asn1_oid *oid, char *buf, size_t len)
|
||||||
{
|
{
|
||||||
char *pos = buf;
|
char *pos = buf;
|
||||||
size_t i;
|
size_t i;
|
||||||
|
@ -204,3 +215,19 @@ unsigned long asn1_bit_string_to_long(const u8 *buf, size_t len)
|
||||||
|
|
||||||
return val;
|
return val;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int asn1_oid_equal(const struct asn1_oid *a, const struct asn1_oid *b)
|
||||||
|
{
|
||||||
|
size_t i;
|
||||||
|
|
||||||
|
if (a->len != b->len)
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
for (i = 0; i < a->len; i++) {
|
||||||
|
if (a->oid[i] != b->oid[i])
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
|
@ -60,7 +60,11 @@ int asn1_get_next(const u8 *buf, size_t len, struct asn1_hdr *hdr);
|
||||||
int asn1_parse_oid(const u8 *buf, size_t len, struct asn1_oid *oid);
|
int asn1_parse_oid(const u8 *buf, size_t len, struct asn1_oid *oid);
|
||||||
int asn1_get_oid(const u8 *buf, size_t len, struct asn1_oid *oid,
|
int asn1_get_oid(const u8 *buf, size_t len, struct asn1_oid *oid,
|
||||||
const u8 **next);
|
const u8 **next);
|
||||||
void asn1_oid_to_str(struct asn1_oid *oid, char *buf, size_t len);
|
void asn1_oid_to_str(const struct asn1_oid *oid, char *buf, size_t len);
|
||||||
unsigned long asn1_bit_string_to_long(const u8 *buf, size_t len);
|
unsigned long asn1_bit_string_to_long(const u8 *buf, size_t len);
|
||||||
|
int asn1_oid_equal(const struct asn1_oid *a, const struct asn1_oid *b);
|
||||||
|
|
||||||
|
extern struct asn1_oid asn1_sha1_oid;
|
||||||
|
extern struct asn1_oid asn1_sha256_oid;
|
||||||
|
|
||||||
#endif /* ASN1_H */
|
#endif /* ASN1_H */
|
||||||
|
|
Loading…
Reference in a new issue