/ OSX / libsecurity_keychain / lib / CertificateValues.h
CertificateValues.h
 1  /*
 2   * Copyright (c) 2002-2017 Apple Inc. All Rights Reserved.
 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  // CertificateValues.h - Objects in a Certificate
26  //
27  #ifndef _SECURITY_CERTIFICATEVALUES_H_
28  #define _SECURITY_CERTIFICATEVALUES_H_
29  
30  #include <Security/SecBase.h>
31  
32  
33  namespace Security
34  {
35  
36  namespace KeychainCore
37  {
38  
39  class CertificateValues
40  {
41  	NOCOPY(CertificateValues)
42  
43  public:
44  
45  	CertificateValues(SecCertificateRef certificateRef);
46  	virtual ~CertificateValues() _NOEXCEPT;
47  
48  	static CFStringRef remapLabelToKey(CFStringRef label);
49  	CFArrayRef copyPropertyValues(CFErrorRef *error);
50  	CFDictionaryRef copyFieldValues(CFArrayRef keys, CFErrorRef *error);
51  	CFDataRef copySerialNumber(CFErrorRef *error);
52  	CFDataRef copyNormalizedIssuerContent(CFErrorRef *error);
53  	CFDataRef copyNormalizedSubjectContent(CFErrorRef *error);
54  	CFDataRef copyIssuerSequence(CFErrorRef *error);
55  	CFDataRef copySubjectSequence(CFErrorRef *error);
56  	CFStringRef copyIssuerSummary(CFErrorRef *error);
57  	CFStringRef copySubjectSummary(CFErrorRef *error);
58  	CFDictionaryRef copyAttributeDictionary(CFErrorRef *error);
59  	bool isValid(CFAbsoluteTime verifyTime, CFErrorRef *error);
60  	CFAbsoluteTime notValidBefore(CFErrorRef *error);
61  	CFAbsoluteTime notValidAfter(CFErrorRef *error);
62  
63  private:
64  
65  	SecCertificateRef copySecCertificateRef(CFErrorRef *error);
66  
67  	SecCertificateRef mCertificateRef;
68  	CFDataRef mCertificateData;
69  	CFArrayRef mCertificateProperties;
70  	static CFDictionaryRef mOIDRemap;
71  };
72  
73  
74  } // end namespace KeychainCore
75  
76  } // end namespace Security
77  
78  #endif // !_SECURITY_CERTIFICATEVALUES_H_