X-Git-Url: https://git.saurik.com/apple/security.git/blobdiff_plain/5dd5f9ec28f304ca377c42fd7f711d6cf12b90e1..5c19dc3ae3bd8e40a9c028b0deddd50ff337692c:/Security/libsecurity_pkcs12/lib/pkcs7Templates.cpp diff --git a/Security/libsecurity_pkcs12/lib/pkcs7Templates.cpp b/Security/libsecurity_pkcs12/lib/pkcs7Templates.cpp deleted file mode 100644 index d2ffa5c9..00000000 --- a/Security/libsecurity_pkcs12/lib/pkcs7Templates.cpp +++ /dev/null @@ -1,162 +0,0 @@ -/* - * Copyright (c) 2003-2004,2011,2014 Apple Inc. All Rights Reserved. - * - * @APPLE_LICENSE_HEADER_START@ - * - * This file contains Original Code and/or Modifications of Original Code - * as defined in and that are subject to the Apple Public Source License - * Version 2.0 (the 'License'). You may not use this file except in - * compliance with the License. Please obtain a copy of the License at - * http://www.opensource.apple.com/apsl/ and read it before using this - * file. - * - * The Original Code and all software distributed under the License are - * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER - * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, - * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. - * Please see the License for the specific language governing rights and - * limitations under the License. - * - * @APPLE_LICENSE_HEADER_END@ - */ -/* - * pkcs7Templates.cpp - */ - -#include "pkcs7Templates.h" -#include /* NSS_AlgorithmIDTemplate */ -#include -#include -#include "pkcs12Utils.h" -#include - -const SecAsn1Template NSS_P7_DigestInfoTemplate[] = { - { SEC_ASN1_SEQUENCE, - 0, NULL, sizeof(NSS_P7_DigestInfo) }, - { SEC_ASN1_INLINE, - offsetof(NSS_P7_DigestInfo,digestAlgorithm), - kSecAsn1AlgorithmIDTemplate }, - { SEC_ASN1_OCTET_STRING, - offsetof(NSS_P7_DigestInfo,digest) }, - { 0 } -}; - -/* - * Uninterpreted ContentInfo, with content stripped from its - * EXPLICIT CONTEXT_SPECIFIC wrapper - */ -const SecAsn1Template NSS_P7_RawContentInfoTemplate[] = { - { SEC_ASN1_SEQUENCE, - 0, NULL, sizeof(NSS_P7_RawContentInfo) }, - { SEC_ASN1_OBJECT_ID, - offsetof(NSS_P7_RawContentInfo,contentType) }, - { SEC_ASN1_CONTEXT_SPECIFIC | SEC_ASN1_EXPLICIT | - SEC_ASN1_CONSTRUCTED | SEC_ASN1_OPTIONAL | 0, - offsetof(NSS_P7_RawContentInfo,content), - kSecAsn1AnyTemplate }, - { 0 } -}; - -/* - * Individual ContentInfo.content templates - */ -const SecAsn1Template NSS_P7_EncrContentInfoTemplate[] = { - { SEC_ASN1_SEQUENCE, - 0, NULL, sizeof(NSS_P7_EncrContentInfo) }, - { SEC_ASN1_OBJECT_ID, - offsetof(NSS_P7_EncrContentInfo,contentType) }, - { SEC_ASN1_INLINE, - offsetof(NSS_P7_EncrContentInfo,encrAlg), - kSecAsn1AlgorithmIDTemplate }, - { SEC_ASN1_CONTEXT_SPECIFIC | SEC_ASN1_OPTIONAL | 0, - offsetof(NSS_P7_EncrContentInfo,encrContent), - kSecAsn1OctetStringTemplate }, - { 0 } -}; - -const SecAsn1Template NSS_P7_EncryptedDataTemplate[] = { - { SEC_ASN1_SEQUENCE, - 0, NULL, sizeof(NSS_P7_EncryptedData) }, - { SEC_ASN1_INTEGER, - offsetof(NSS_P7_EncryptedData,version) }, - { SEC_ASN1_INLINE, - offsetof(NSS_P7_EncryptedData,contentInfo), - NSS_P7_EncrContentInfoTemplate }, - { 0 } -}; - -const SecAsn1Template NSS_P7_PtrToEncryptedDataTemplate[] = { - { SEC_ASN1_POINTER, 0, NSS_P7_EncryptedDataTemplate } -}; - -/* - * Decoded ContentInfo via SEC_ASN1_DYNAMIC - */ - -static const SecAsn1Template * NSS_P7_ContentInfoChooser( - void *arg, // --> NSS_P7_DecodedContentInfo - Boolean enc, - const char *buf, // on decode, tag byte - void *dest) // --> NSS_P7_DecodedContentInfo.content -{ - NSS_P7_DecodedContentInfo *dci = - (NSS_P7_DecodedContentInfo *)arg; - const SecAsn1Template *templ = NULL; - NSS_P7_CI_Type type = CT_None; - - if(nssCompareCssmData(&dci->contentType, - &CSSMOID_PKCS7_Data)) { - templ = kSecAsn1PointerToOctetStringTemplate; - type = CT_Data; - } - else if(nssCompareCssmData(&dci->contentType, - &CSSMOID_PKCS7_EncryptedData)) { - templ = NSS_P7_PtrToEncryptedDataTemplate; - type = CT_EncryptedData; - } - else if(nssCompareCssmData(&dci->contentType, - &CSSMOID_PKCS7_SignedData)) { - templ = NSS_P7_PtrToSignedDataTemplate; - type = CT_SignedData; - } - else if(nssCompareCssmData(&dci->contentType, - &CSSMOID_PKCS7_EnvelopedData)) { - templ = NSS_P7_PtrToEnvelDataTemplate; - type = CT_EnvData; - } - else if(nssCompareCssmData(&dci->contentType, - &CSSMOID_PKCS7_SignedAndEnvelopedData)) { - templ = NSS_P7_PtrToSignEnvelDataTemplate; - type = CT_SignedEnvData; - } - else if(nssCompareCssmData(&dci->contentType, - &CSSMOID_PKCS7_DigestedData)) { - templ = NSS_P7_PtrToDigestedDataTemplate; - type = CT_DigestData; - } - /* add more here when we implement them */ - else { - return kSecAsn1PointerToAnyTemplate; - } - if(!enc) { - dci->type = type; - } - return templ; -} - -static const SecAsn1TemplateChooserPtr NSS_P7_ContentInfoChooserPtr = - NSS_P7_ContentInfoChooser; - -const SecAsn1Template NSS_P7_DecodedContentInfoTemplate[] = { - { SEC_ASN1_SEQUENCE, - 0, NULL, sizeof(NSS_P7_DecodedContentInfo) }, - { SEC_ASN1_OBJECT_ID, - offsetof(NSS_P7_DecodedContentInfo,contentType) }, - { SEC_ASN1_OPTIONAL | SEC_ASN1_DYNAMIC | - SEC_ASN1_EXPLICIT | SEC_ASN1_CONSTRUCTED | - SEC_ASN1_CONTEXT_SPECIFIC | 0, - offsetof(NSS_P7_DecodedContentInfo,content), - &NSS_P7_ContentInfoChooserPtr }, - { 0 } -};