SecNetscapeTemplates.cpp [plain text]
#include "SecNetscapeTemplates.h"
#include <Security/SecAsn1Templates.h>
#include <Security/secasn1t.h>
#include <stddef.h>
const SecAsn1Template NetscapeCertSequenceTemplate[] = {
{ SEC_ASN1_SEQUENCE,
0, NULL, sizeof(NetscapeCertSequence) },
{ SEC_ASN1_OBJECT_ID,
offsetof(NetscapeCertSequence, contentType), 0},
{ SEC_ASN1_EXPLICIT | SEC_ASN1_CONSTRUCTED |
SEC_ASN1_CONTEXT_SPECIFIC | 0 ,
offsetof(NetscapeCertSequence, certs),
kSecAsn1SequenceOfAnyTemplate },
{ 0 }
};
const SecAsn1Template PublicKeyAndChallengeTemplate[] = {
{ SEC_ASN1_SEQUENCE,
0, NULL, sizeof(PublicKeyAndChallenge) },
{ SEC_ASN1_INLINE,
offsetof(PublicKeyAndChallenge, spki),
kSecAsn1SubjectPublicKeyInfoTemplate },
{ SEC_ASN1_INLINE,
offsetof(PublicKeyAndChallenge, challenge),
kSecAsn1IA5StringTemplate },
{ 0 }
};
extern const SecAsn1Template SignedPublicKeyAndChallengeTemplate[] = {
{ SEC_ASN1_SEQUENCE,
0, NULL, sizeof(SignedPublicKeyAndChallenge) },
{ SEC_ASN1_INLINE,
offsetof(SignedPublicKeyAndChallenge, pubKeyAndChallenge),
PublicKeyAndChallengeTemplate },
{ SEC_ASN1_INLINE,
offsetof(SignedPublicKeyAndChallenge, algId),
kSecAsn1AlgorithmIDTemplate },
{ SEC_ASN1_BIT_STRING,
offsetof(SignedPublicKeyAndChallenge, signature) },
{ 0 }
};