| typedef TInt | TKeyUsage |
General Security Definitions What a key can be used for. The values this can take are defined in TKeyUsageVals.
Deprecated
What a key can be used for.
These values can be ORed together if a key has several usages. EAllKeyUsages is used when searching for all keys, rather than ones with a particular usage. As these can be combined, TKeyUsage is used to store them.
Deprecated
| Enumerator | Value | Description |
|---|---|---|
| EDigitalSignature | 0x80000000 | |
| ENonRepudiation | 0x40000000 | |
| EKeyEncipherment | 0x20000000 | |
| EDataEncipherment | 0x10000000 | |
| EKeyAgreement | 0x08000000 | |
| EKeyCertSign | 0x04000000 | |
| ECRLSign | 0x02000000 | |
| EEncipherOnly | 0x01000000 | |
| EDecipherOnly | 0x00800000 | |
| EAllKeyUsages | -1 |
What a key can be used for - PKCS#15 scheme.
| Enumerator | Value | Description |
|---|---|---|
| EPKCS15UsageEncrypt | 0x001 | |
| EPKCS15UsageDecrypt | 0x002 | |
| EPKCS15UsageSign | 0x004 | |
| EPKCS15UsageSignRecover | 0x008 | |
| EPKCS15UsageWrap | 0x010 | |
| EPKCS15UsageUnwrap | 0x020 | |
| EPKCS15UsageVerify | 0x040 | |
| EPKCS15UsageVerifyRecover | 0x080 | |
| EPKCS15UsageDerive | 0x100 | |
| EPKCS15UsageNonRepudiation | 0x200 | |
| EPKCS15UsageEncryptWrap | 0x011 | |
| EPKCS15UsageVerifyVerifyRecover | 0x0C0 | |
| EPKCS15UsageDecryptUnwrap | 0x022 | |
| EPKCS15UsageSignSignRecover | 0x00C | |
| EPKCS15UsageVerifyEncrypt | 0x0D1 | |
| EPKCS15UsageSignDecrypt | 0x02E | |
| EPKCS15UsageAll | 0xffffffff | |
| EPKCS15UsageNone | 0x00000000 |
What a key can be used for - X.509 scheme.
| Enumerator | Value | Description |
|---|---|---|
| EX509UsageDigitalSignature | 0x80000000 | |
| EX509UsageNonRepudiation | 0x40000000 | |
| EX509UsageKeyEncipherment | 0x20000000 | |
| EX509UsageDataEncipherment | 0x10000000 | |
| EX509UsageKeyAgreement | 0x08000000 | |
| EX509UsageKeyCertSign | 0x04000000 | |
| EX509UsageCRLSign | 0x02000000 | |
| EX509UsageEncipherOnly | 0x01000000 | |
| EX509UsageDecipherOnly | 0x00800000 | |
| EX509UsageAnySign | 0x86000000 | |
| EX509UsageAllEncipher | 0x30000000 | |
| EX509UsageAllSignEncipher | 0xB6000000 | |
| EX509UsageAll | 0xffffffff | For use in filters to return all keys. |
| EX509UsageNone | 0x00000000 |
Supported types of certificate format. Note these must be only 1 byte long as the file cert store only seralises them as 1 byte.
| Enumerator | Value | Description |
|---|---|---|
| EX509Certificate | 0x00 | |
| EWTLSCertificate | 0x01 | |
| EX968Certificate | 0x02 | |
| EUnknownCertificate | 0x0f | |
| EX509CertificateUrl | 0x10 | |
| EWTLSCertificateUrl | 0x11 | |
| EX968CertificateUrl | 0x12 |
The owner of a certificate.
| Enumerator | Value | Description |
|---|---|---|
| ECACertificate | ||
| EUserCertificate | ||
| EPeerCertificate |
| typedef TSHA1Hash | TKeyIdentifier |
A SHA-1 hash is also used as a key identifier.
Errors that can occur when validating a certificate chain.
Except EValidatedOK, all these are fatal errors unless specified.
| Enumerator | Value | Description |
|---|---|---|
| EValidatedOK |
Validation OK | |
| EChainHasNoRoot |
Certificate chain has no root | |
| ESignatureInvalid |
Invalid signature | |
| EDateOutOfRange |
Date out of range | |
| ENameIsExcluded |
Name is excluded | |
| ENameNotPermitted |
Name is not permitted | |
| ENotCACert |
Not a CA certificate | |
| ECertificateRevoked |
Certificate revoked | |
| EUnrecognizedCriticalExtension |
Unrecognized critical extension | |
| ENoBasicConstraintInCACert |
No basic constraint in CA certificate | |
| ENoAcceptablePolicy |
No acceptable policy | |
| EPathTooLong |
Path too long | |
| ENegativePathLengthSpecified |
Negative path length specified | |
| ENamesDontChain |
Names do not chain | |
| ERequiredPolicyNotFound |
Required policy not found | |
| EBadKeyUsage |
Bad key usage | |
| ERootCertNotSelfSigned |
Root certificate not self-signed. We cannot tell if this is fatal or not, as we lack the context. | |
| ECriticalExtendedKeyUsage |
Critical extended key usage We cannot tell if this is fatal or not, as we lack the context. | |
| ECriticalCertPoliciesWithQualifiers |
Critical certificate policies with qualifiers We cannot tell if this is fatal or not, as we lack the context. | |
| ECriticalPolicyMapping |
Critical policy mapping We cannot tell if this is fatal or not, as we lack the context. | |
| ECriticalDeviceId |
Critical Device Id We cannot tell if this is fatal or not, as we lack the context. | |
| ECriticalSid |
Critical Sid We cannot tell if this is fatal or not, as we lack the context. | |
| ECriticalVid |
Critical Vid We cannot tell if this is fatal or not, as we lack the context. | |
| ECriticalCapabilities |
Critical Capabilities We cannot tell if this is fatal or not, as we lack the context. |