]> git.saurik.com Git - apple/security.git/blame - OSX/libsecurity_ocspd/common/ocspExtensions.cpp
Security-58286.41.2.tar.gz
[apple/security.git] / OSX / libsecurity_ocspd / common / ocspExtensions.cpp
Content-type: text/html ]> git.saurik.com Git - apple/security.git/blame - OSX/libsecurity_ocspd/common/ocspExtensions.cpp


500 - Internal Server Error

Malformed UTF-8 character (fatal) at /usr/lib/x86_64-linux-gnu/perl5/5.40/HTML/Entities.pm line 485, <$fd> line 187.
CommitLineData
b1ab9ed8 1/*
d8f41ccd 2 * Copyright (c) 2004,2011,2014 Apple Inc. All Rights Reserved.
b1ab9ed8
A
3 *
4 * @APPLE_LICENSE_HEADER_START@
5 *
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
11 * file.
12 *
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.
20 *
21 * @APPLE_LICENSE_HEADER_END@
22 */
23
24/*
25 * ocspExtensions.cpp - OCSP Extension support.
26 */
27
28#include "ocspExtensions.h"
29#include "ocspdDebug.h"
30#include "ocspdUtils.h"
31#include <Security/oidscrl.h>
32#include <Security/cssmapple.h>
33#include <strings.h>
34#include "ocspdDebug.h"
35#include <security_cdsa_utilities/cssmerrors.h>
36
37#pragma mark ----- base class : OCSCExtension -----
38
39/*
40 * Public means to vend a subclass of this object while decoding.
41 */
42OCSPExtension *OCSPExtension::createFromNSS(
43 SecAsn1CoderRef coder,
44 const NSS_CertExtension &nssExt)
45{
46 const CSSM_OID *extnId = &nssExt.extnId;
47 if(ocspdCompareCssmData(extnId, &CSSMOID_PKIX_OCSP_NONCE)) {
48 return new OCSPNonce(coder, nssExt);
49 }
50 /* more here */
51 else {
52 return new OCSPExtension(coder, nssExt, OET_Unknown);
53 }
54}
55
56/*
57 * Called in two circumstances:
58 *
59 * -- from subclass-specific constructor during decode
60 * -- from createFromNSS (during decode) when we don't recognize the extension ID
61 */
62OCSPExtension::OCSPExtension(
63 SecAsn1CoderRef coder,
64 const NSS_CertExtension &nssExt,
65 OCSPExtensionTag tag)
66 : mNssExt(const_cast<NSS_CertExtension *>(&nssExt)),
67 mCoder(coder),
68 mTag(tag),
69 mUnrecognizedCritical(false)
70{
71 if((nssExt.critical.Data != NULL) && (*nssExt.critical.Data != 0)) {
72 mCritical = true;
73 }
74 else {
75 mCritical = false;
76 }
77 if(mCritical && (tag == OET_Unknown)) {
78 mUnrecognizedCritical = true;
79 }
80}
81
82/*
83