From b0093571f8bc0207673bb6a6ad5081263e7863b6 Mon Sep 17 00:00:00 2001 From: Michael Brown Date: Fri, 2 Jun 2023 13:49:27 +0100 Subject: [crypto] Add support for PKCS#8 private key format Signed-off-by: Michael Brown --- src/crypto/asn1.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'src/crypto/asn1.c') diff --git a/src/crypto/asn1.c b/src/crypto/asn1.c index 549ee4d86..dc9d1c54d 100644 --- a/src/crypto/asn1.c +++ b/src/crypto/asn1.c @@ -589,6 +589,32 @@ int asn1_signature_algorithm ( const struct asn1_cursor *cursor, return 0; } +/** + * Check ASN.1 OID-identified algorithm + * + * @v cursor ASN.1 object cursor + * @v expected Expected algorithm + * @ret rc Return status code + */ +int asn1_check_algorithm ( const struct asn1_cursor *cursor, + struct asn1_algorithm *expected ) { + struct asn1_algorithm *actual; + int rc; + + /* Parse algorithm */ + if ( ( rc = asn1_algorithm ( cursor, &actual ) ) != 0 ) + return rc; + + /* Check algorithm matches */ + if ( actual != expected ) { + DBGC ( cursor, "ASN1 %p algorithm %s does not match %s\n", + cursor, actual->name, expected->name ); + return -ENOTTY_ALGORITHM; + } + + return 0; +} + /** * Parse ASN.1 GeneralizedTime * -- cgit v1.2.3-55-g7522