2 * Copyright (c) 2003-2006,2008,2010-2012 Apple Inc. All Rights Reserved.
4 * @APPLE_LICENSE_HEADER_START@
6 * This file contains Original Code and/or Modifications of Original Code
7 * as defined in and that are subject to the Apple Public Source License
8 * Version 2.0 (the 'License'). You may not use this file except in
9 * compliance with the License. Please obtain a copy of the License at
10 * http://www.opensource.apple.com/apsl/ and read it before using this
13 * The Original Code and all software distributed under the License are
14 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
15 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
16 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
17 * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
18 * Please see the License for the specific language governing rights and
19 * limitations under the License.
21 * @APPLE_LICENSE_HEADER_END@
23 * csrTemplates.cpp - ASN1 templates Cert Signing Requests (per PKCS10).
26 #include "SecAsn1Templates.h"
28 #include "csrTemplates.h"
29 #include "keyTemplates.h"
31 const SecAsn1Template kSecAsn1CertRequestInfoTemplate
[] = {
32 { SEC_ASN1_SEQUENCE
, 0, NULL
, sizeof(NSSCertRequestInfo
) },
33 { SEC_ASN1_INTEGER
, offsetof(NSSCertRequestInfo
,version
) },
35 offsetof(NSSCertRequestInfo
,subject
),
36 kSecAsn1NameTemplate
},
38 offsetof(NSSCertRequestInfo
,subjectPublicKeyInfo
),
39 kSecAsn1SubjectPublicKeyInfoTemplate
},
40 { SEC_ASN1_CONSTRUCTED
| SEC_ASN1_CONTEXT_SPECIFIC
| 0,
41 offsetof(NSSCertRequestInfo
,attributes
),
42 kSecAsn1SetOfAttributeTemplate
},
46 const SecAsn1Template kSecAsn1CertRequestTemplate
[] = {
47 { SEC_ASN1_SEQUENCE
, 0, NULL
, sizeof(NSSCertRequest
) },
49 offsetof(NSSCertRequest
,reqInfo
),
50 kSecAsn1CertRequestInfoTemplate
},
52 offsetof(NSSCertRequest
,signatureAlgorithm
),
53 kSecAsn1AlgorithmIDTemplate
},
54 { SEC_ASN1_BIT_STRING
, offsetof(NSSCertRequest
,signature
) },
58 const SecAsn1Template kSecAsn1SignedCertRequestTemplate
[] = {
59 { SEC_ASN1_SEQUENCE
, 0, NULL
, sizeof(NSS_SignedCertRequest
) },
61 offsetof(NSS_SignedCertRequest
,certRequestBlob
),
62 kSecAsn1CertRequestInfoTemplate
},
64 offsetof(NSS_SignedCertRequest
,signatureAlgorithm
),
65 kSecAsn1AlgorithmIDTemplate
},
66 { SEC_ASN1_BIT_STRING
, offsetof(NSS_SignedCertRequest
,signature
) },