diff options
author | Martin Willi <martin@strongswan.org> | 2009-08-27 15:28:21 +0200 |
---|---|---|
committer | Martin Willi <martin@strongswan.org> | 2009-08-27 15:28:21 +0200 |
commit | 7ef310f5b41d13a20ee218fb783fa7c6846a7dac (patch) | |
tree | 797d4fbd8ee835e676e8ec14153c6bd8fba505fe /src | |
parent | 9436b31c94b9d14aabf5341485feaf730a05e81b (diff) | |
download | strongswan-7ef310f5b41d13a20ee218fb783fa7c6846a7dac.tar.bz2 strongswan-7ef310f5b41d13a20ee218fb783fa7c6846a7dac.tar.xz |
do not append a NULL paramter to ECDSA algorithmIdentifiers
Diffstat (limited to 'src')
-rw-r--r-- | src/libstrongswan/asn1/asn1.c | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/src/libstrongswan/asn1/asn1.c b/src/libstrongswan/asn1/asn1.c index c565e14ff..df922c54d 100644 --- a/src/libstrongswan/asn1/asn1.c +++ b/src/libstrongswan/asn1/asn1.c @@ -43,9 +43,23 @@ const chunk_t ASN1_INTEGER_2 = chunk_from_buf(ASN1_INTEGER_2_str); */ chunk_t asn1_algorithmIdentifier(int oid) { - return asn1_wrap(ASN1_SEQUENCE, "mm", - asn1_build_known_oid(oid), - asn1_wrap(ASN1_NULL, "")); + chunk_t null; + + /* some algorithmIdentifiers have an appended NULL */ + switch (oid) + { + case OID_ECDSA_WITH_SHA1: + case OID_ECDSA_WITH_SHA224: + case OID_ECDSA_WITH_SHA256: + case OID_ECDSA_WITH_SHA384: + case OID_ECDSA_WITH_SHA512: + null = chunk_empty; + break; + default: + null = asn1_wrap(ASN1_NULL, "");; + break; + } + return asn1_wrap(ASN1_SEQUENCE, "mm", asn1_build_known_oid(oid), null); } /* |