NAVTOR SDK  v.3.0
Software Development Kit for fast and efficient development of ECDIS, ECS and generic marine applications
digital_certificate_interface.h
Go to the documentation of this file.
1 #ifndef SDK_CRYPT_DIGITAL_CERTIFICATE_INTERFACE_H_
11 #define SDK_CRYPT_DIGITAL_CERTIFICATE_INTERFACE_H_
12 
13 #include <base/inc/platform.h>
14 #include <base/inc/sdk_results.h>
15 #include <base/inc/sdk_ref_ptr.h>
17 #include <base/inc/forward_declarations.h>
21 
22 SDK_BEGIN_NAMESPACE
23 namespace crypt {
24 
25 FWD_DECL_INTERFACE(IDigitalCertificate);
26 typedef IDigitalCertificateSP DigitalCertificateSP;
27 
31 {
34 
37 
40 
43 
56 
69 
74  kDigitalCertificateProps_ParentCertSerial = 27,
75 };
76 
80 {
81  kDigitalCertificateType_Unknown = 0, // Unknown type
82  kDigitalCertificateType_NonCA = 1, // Ordinary non-CA certificate
83  kDigitalCertificateType_CA = 2, // CA (root) certificate
84 };
85 
89 {
90  kDigitalCertificateFormat_Unknown = 0, // Unknown algorithm
91  kDigitalCertificateFormat_DER = 1, // DER encoded certificate
92  kDigitalCertificateFormat_PEM = 2, // PEM encoded certificate
93  kDigitalCertificateFormat_Text = 3, // Text encoded certificate (S-63)
94 };
95 
98 class IDigitalCertificate : public ISDKProperties
99 {
100 public:
102  virtual SDKResult SDK_CALLTYPE GetPublicKeySignature(
103  DigitalSignatureSP& public_key_signature) const throw() = 0;
104 
106  virtual SDKResult SDK_CALLTYPE GetPublicKey(
107  PublicCryptoKeySP& public_key) const throw() = 0;
108 
110  virtual DigitalCertificateFormat SDK_CALLTYPE GetFormat() const throw() = 0;
111 
114  {
115  IDigitalSignatureSP signature;
116 
117  return (SDK_OK(GetPublicKeySignature(signature)) && signature)
118  ? signature->GetSignatureAlgorithm()
119  : kDigitalSignatureAlgorithm_Unknown;
120  }
121 
123  inline PrivatePublicKeyType SDK_CALLTYPE GetPublicKeyType() const
124  {
125  IPublicCryptoKeySP public_key;
126 
127  return (SDK_OK(GetPublicKey(public_key)) && public_key)
128  ? public_key->GetPublicKeyType()
129  : kPrivatePublicKeyType_Unknown;
130  }
131 
133  SDK_IMPLEMENT_IID(IDigitalCertificate)
134  SDK_END_INTERFACE(IDigitalCertificate)
135 };
136 SDK_DECLARE_IID(IDigitalCertificate)
137 
138 } // namespace crypt
139 SDK_END_NAMESPACE
140 
141 #endif // SDK_CRYPT_DIGITAL_CERTIFICATE_INTERFACE_H_
crypt::DigitalCertificateFormat
DigitalCertificateFormat
Digital certificate format.
Definition: digital_certificate_interface.h:88
crypt::PrivatePublicKeyType
PrivatePublicKeyType
Private/Public key type.
Definition: asymmetric_crypto_key_interface.h:35
crypt::IDigitalCertificate::GetFormat
virtual DigitalCertificateFormat SDK_CALLTYPE GetFormat() const =0
Returns source certificate file format.
crypt::kDigitalCertificateProps_StartDate
@ kDigitalCertificateProps_StartDate
Certificate start date (kSDKAnyType_SDKTime)
Definition: digital_certificate_interface.h:33
crypt::kDigitalCertificateProps_Issuer_L
@ kDigitalCertificateProps_Issuer_L
Certificate issuer organization name (kSDKAnyType_SDKStringPtr)
Definition: digital_certificate_interface.h:49
crypt::kDigitalCertificateProps_Type
@ kDigitalCertificateProps_Type
Definition: digital_certificate_interface.h:71
sdk_results.h
A list of SDK error/return results.
crypt::IDigitalCertificate::GetSignatureAlgorithm
DigitalSignatureAlgorithm SDK_CALLTYPE GetSignatureAlgorithm() const
Returns public key signature algorithm.
Definition: digital_certificate_interface.h:113
crypt::kDigitalCertificateProps_Subject_OU
@ kDigitalCertificateProps_Subject_OU
Certificate subject common name (kSDKAnyType_SDKStringPtr)
Definition: digital_certificate_interface.h:66
crypt::kDigitalCertificateProps_SerialNumber
@ kDigitalCertificateProps_SerialNumber
Certificate issuer country name (kSDKAnyType_SDKStringPtr)
Definition: digital_certificate_interface.h:42
sdk_ref_ptr.h
Interfaces wrapper with reference count control.
crypt::kDigitalCertificateProps_Version
@ kDigitalCertificateProps_Version
Certificate serial number in hex format (kSDKAnyType_SDKStringPtr)
Definition: digital_certificate_interface.h:39
asymmetric_crypto_key_interface.h
Set of interfaces for asymmetric cryptographic key implementation.
crypt::kDigitalCertificateProps_Subject_O
@ kDigitalCertificateProps_Subject_O
Certificate subject organization unit name (kSDKAnyType_SDKStringPtr)
Definition: digital_certificate_interface.h:64
properties_interface.h
Object generic properties interface.
crypt::kDigitalCertificateProps_Issuer_C
@ kDigitalCertificateProps_Issuer_C
Certificate issuer state or province name (kSDKAnyType_SDKStringPtr)
Definition: digital_certificate_interface.h:45
crypt::kDigitalCertificateProps_Subject_S
@ kDigitalCertificateProps_Subject_S
Certificate subject locality name (kSDKAnyType_SDKStringPtr)
Definition: digital_certificate_interface.h:60
crypt::kDigitalCertificateProps_EndDate
@ kDigitalCertificateProps_EndDate
Certificate version (kSDKAnyType_Uint32)
Definition: digital_certificate_interface.h:36
crypt::DigitalSignatureAlgorithm
DigitalSignatureAlgorithm
Digital signature algorithm.
Definition: digital_signature_interface.h:31
crypt::IDigitalCertificate::GetPublicKeySignature
virtual SDKResult SDK_CALLTYPE GetPublicKeySignature(DigitalSignatureSP &public_key_signature) const =0
Returns a public key signature.
crypt::kDigitalCertificateProps_Issuer_O
@ kDigitalCertificateProps_Issuer_O
Certificate issuer organization unit name (kSDKAnyType_SDKStringPtr)
Definition: digital_certificate_interface.h:51
crypt::DigitalCertificateType
DigitalCertificateType
Digital certificate type.
Definition: digital_certificate_interface.h:79
SDKResult
SDKInt32 SDKResult
Type of all error or return codes which SDK functions can end with.
Definition: sdk_results.h:17
crypt::IDigitalCertificate::GetPublicKeyType
PrivatePublicKeyType SDK_CALLTYPE GetPublicKeyType() const
Returns public key type.
Definition: digital_certificate_interface.h:123
crypt::kDigitalCertificateProps_Issuer_OU
@ kDigitalCertificateProps_Issuer_OU
Certificate issuer common name (kSDKAnyType_SDKStringPtr)
Definition: digital_certificate_interface.h:53
sdk_component_interface.h
Common base SDK interfaces.
platform.h
Describes the platform constants.
crypt::IDigitalCertificate::GetPublicKey
virtual SDKResult SDK_CALLTYPE GetPublicKey(PublicCryptoKeySP &public_key) const =0
Returns a public key instance.
crypt::kDigitalCertificateProps_Subject_CN
@ kDigitalCertificateProps_Subject_CN
Certificate type (kSDKAnyType_Uint32), one of DigitalCertificateType values.
Definition: digital_certificate_interface.h:68
SDK_OK
#define SDK_OK(res)
Checks succeeded result.
Definition: sdk_results_enum.h:65
digital_signature_interface.h
Generic digital signature interface.
crypt::kDigitalCertificateProps_Issuer_CN
@ kDigitalCertificateProps_Issuer_CN
Certificate subject country name (kSDKAnyType_SDKStringPtr)
Definition: digital_certificate_interface.h:55
crypt::kDigitalCertificateProps_Subject_C
@ kDigitalCertificateProps_Subject_C
Certificate subject state or province name (kSDKAnyType_SDKStringPtr)
Definition: digital_certificate_interface.h:58
crypt::kDigitalCertificateProps_Issuer_S
@ kDigitalCertificateProps_Issuer_S
Certificate issuer locality name (kSDKAnyType_SDKStringPtr)
Definition: digital_certificate_interface.h:47
crypt::DigitalCertificateProps
DigitalCertificateProps
Generic digital cryptographic certificate properties.
Definition: digital_certificate_interface.h:30
crypt::IDigitalCertificate
Generic digital cryptographic certificate interface.
Definition: digital_certificate_interface.h:98
crypt::kDigitalCertificateProps_Subject_L
@ kDigitalCertificateProps_Subject_L
Certificate subject organization name (kSDKAnyType_SDKStringPtr)
Definition: digital_certificate_interface.h:62
FWD_DECL_INTERFACE
FWD_DECL_INTERFACE(ILWEParserWrapper)
Provides a wrapper around the message parser to get, add or remove the.