]> git.saurik.com Git - apple/security.git/blobdiff - libsecurity_apple_x509_cl/lib/DecodedExtensions.h
Security-57031.1.35.tar.gz
[apple/security.git] / libsecurity_apple_x509_cl / lib / DecodedExtensions.h
diff --git a/libsecurity_apple_x509_cl/lib/DecodedExtensions.h b/libsecurity_apple_x509_cl/lib/DecodedExtensions.h
deleted file mode 100644 (file)
index 8841115..0000000
+++ /dev/null
@@ -1,160 +0,0 @@
-/*
- * Copyright (c) 2000-2002 Apple Computer, Inc. All Rights Reserved.
- * 
- * The contents of this file constitute Original Code as defined in and are
- * subject to the Apple Public Source License Version 1.2 (the 'License').
- * You may not use this file except in compliance with the License. Please obtain
- * a copy of the License at http://www.apple.com/publicsource and read it before
- * using this file.
- * 
- * This 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.
- */
-
-
-/*
- * DecodedExtensions.h - Intermediate representation of extensions. 
- */
-
-#ifndef        _DECODED_EXTENSIONS_H_
-#define _DECODED_EXTENSIONS_H_
-
-#include <Security/cssmtype.h>
-#include <security_cdsa_utilities/cssmdata.h>
-
-#include <security_asn1/SecNssCoder.h>
-#include <Security/X509Templates.h>
-
-#include "cldebugging.h"
-
-class DecodedExten 
-{
-       NOCOPY(DecodedExten)
-public:
-       
-       /* member variables only set on construct */
-       DecodedExten(
-               const CSSM_OID  &extnId,                // copied
-               bool                    critical,
-               void                    *nssObj,                // NSS_KeyUsage, NSS_BasicConstraints, 
-                                                                               //   etc. NOT COPIED, exists in same
-                                                                               //   memory space as coder
-               bool                    berEncoded,             // indicates unknown extension 
-                                                                               //   which we do not BER-decode 
-                                                                               //   when parsing a cert
-               const SecAsn1Template *templ,   // to decode/encode if !berEncoded
-               SecNssCoder             &coder,                 // all local allocs from here
-               const CSSM_DATA *rawExtn=NULL); // NSS_CertExtension.value, copied to
-                                                                               //   mRawExtn, optional (not present 
-                                                                               //   during a SetField op)
-       ~DecodedExten();
-       
-       /*
-        * Convert this extension to a CSSM_X509_EXTENSION, after its contents 
-        * have been converted to a native CDSA object (CE_KeyUsage, etc.).
-        * This is the final step of a getField op involving an extension.
-        */
-       void convertToCdsa(
-               void                                    *cdsaObj,       // e.g. CE_KeyUsage
-                                                                                       // CSSM_DATA_PTR for berEncoded
-               CSSM_X509_EXTENSION_PTR cssmExt,        // contents mallocd in alloc's space
-                                                                                       //   and RETURNED               
-               Allocator                       &alloc) const;
-       
-       /*
-        * Convert a DecodedExten to a CSSM_X509_EXTENSION. This includes
-        * the mapping of the extnId to a known CDSA type and type and doing the 
-        * actual NSS-to-CDSA conversion.       
-        */
-       void parse( 
-               CSSM_X509_EXTENSION_PTR cssmExt,        // mallocd by caller, contents
-                                                                                       // mallocd in alloc's space, 
-                                                                                       // RETURNED
-               Allocator                       &alloc) const;
-
-       const CSSM_OID  &extnId() const                 { return mExtnId; }
-       bool            critical() const                        { return mCritical; }
-       void            *nssObj() const                         { return mNssObj; }
-       bool            berEncoded() const                      { return mBerEncoded; }
-       const SecAsn1Template *templ()  const   { return mTempl; }
-       CSSM_DATA       *rawExtn() const                        { return mRawExtn; }
-private:                       
-       CSSM_X509EXT_TAGandVALUE *createTagAndValue(
-               const CSSM_DATA         &berValue,
-               Allocator                       &alloc) const;
-               
-       CSSM_OID        mExtnId;
-       bool            mCritical;
-       void            *mNssObj;               // NSS_KeyUsage, NSS_BasicConstraints, etc.
-       bool            mBerEncoded;    // indicates unknown extension which we
-                                                               // do not BER-decode when parsing a cert
-       const SecAsn1Template *mTempl;
-                                                               // used for decode/encode
-       SecNssCoder     &mCoder;
-       CSSM_DATA       *mRawExtn;              // optional BER-encoded extension data, not
-                                                               // present if created via SetField()
-};
-
-/*
- * A variable-size array of DecodedExtens.
- * Used for storing cert and CRL extensions as well as per-CRL-entry 
- * extensions.
- */
-class DecodedExtensions 
-{
-       NOCOPY(DecodedExtensions)
-public:
-       DecodedExtensions(      
-               SecNssCoder             &coder,                         // for local allocs
-               Allocator       &alloc);                        // for user space (copyout) allocs
-       ~DecodedExtensions();
-
-       /* Initialize by decoding an NSS-style NSS_CertExtension array */
-       void decodeFromNss(
-               NSS_CertExtension       **extensions);  
-               
-       /* Encode into a NSS-style NSS_CertExtension array, allocating 
-        * both the array pointers and the NSS_Extension elements themselves */
-       void encodeToNss(
-               NSS_CertExtension       **&extensions);
-               
-       /* add/retrieve entries */
-       void addExtension(
-               const CSSM_OID  &extnId,                // copied
-               bool                    critical,
-               void                    *nssObj,                // NSS_BasicConstraints, 
-                                                                               //   etc. NOT COPIED, exists in same
-                                                                               //   memory space as coder
-               bool                    berEncoded,             // indicates unknown extension 
-                                                                               //    which we do not BER-decode 
-                                                                               //    when parsing a cert
-               const SecAsn1Template *templ,   // required if !berEncoded
-               const CSSM_DATA *rawExtn=NULL); // NSS_CertExtension.value, copied,
-                                                                               //   optional (not present during a 
-                                                                               //   SetField op)
-       const DecodedExten *getExtension(
-               unsigned                extenDex) const;
-               
-       /* 
-        * Convert to CSSM_X509_EXTENSIONS, including conversion to 
-        * native CDSA C structs. Only used on CRL side, on a getField
-        * returning the entire parsed CRL. */
-       void convertToCdsa(
-               CSSM_X509_EXTENSIONS            &cssmExtens,
-               Allocator                               &alloc) const;
-               
-       unsigned numExtensions() const          { return mNumExtensions; }
-       
-private:
-       SecNssCoder                     &mCoder;
-       Allocator               &mAlloc;
-       DecodedExten            **mExtensions;
-       unsigned                        mNumExtensions;         // # valid DecodedExtens
-       unsigned                        mSizeofExtensions;      // mallocd size in mExtensions
-};
-
-#endif /* _DECODED_EXTENSIONS_H_ */