Certificate Usage
In some cases it might be essential to evaluate for which usages a certificate has been created. Aloaha provides two properties for this evaluation. The content of those properties are bitmask encoded values.
CertCapabilities
CertCapabilities(fingerprint, ctype) returns the certificate capabilities in "CSP Notation". Fingerprint has to be the fingerprint of the certificate and ctype can be of type 0-2.
The result bitmask encodes the following parameter:
IsCritical = 1
CRLSignEnabled = 2
DataEnciphermentEnabled = 4
DecipherOnlyEnabled = 8
DigitalSignatureEnabled = 16
EncipherOnlyEnabled = 32
KeyAgreementEnabled = 64
KeyCertSignEnabled = 128
KeyEnciphermentEnabled = 256
NonRepudiationEnabled = 512
IsPresent = 1024
CertUsage
CertUsage(fingerprint, ctype) returns the certificate capabilities in "CSP Notation". Fingerprint has to be the fingerprint of the certificate and ctype can be of type 0-2.
The result bitmask encodes the following parameter:
decrypt = 1
sign = 2
SignRecover = 4
Derive = 8
Unwrap = 16
NonRepudiation = 32
Code Sample
Dim csp As Object
Dim parser As Object
Private Sub Command1_Click()
Dim LngReader As Long
Dim CertificateBA() As Byte
Dim CA_BA() As Byte
Dim ctype As Long
Dim searchfilter As Long
Dim fingerprint As String
LngReader = 0 'for 1st connected card reader
searchfilter = 2 'searchfilter "Fingerprint"
ctype = 0 'NonRepudiation Certificate on Card
If csp.get_certificate_by_reader(LngReader, CertificateBA, CA_BA, ctype) = True Then
Call parser.LoadCertificateToMemory(CertificateBA, False)
fingerprint = parser.fingerprint(True)
If csp.FindCertificate(fingerprint, searchfilter, ctype, fingerprint, CertificateBA) > -1 Then
MsgBox csp.CertUsage(fingerprint, ctype)
MsgBox csp.CertCapabilities(fingerprint, ctype)
End If
End If
End Sub
Private Sub Form_Load()
Set csp = CreateObject("
AloahaCertInstaller.provider")
Set parser = CreateObject("
AloahaCertInstaller.CertificateParser")
End Sub
Private Sub Form_Terminate()
Set csp = Nothing
Set parser = Nothing
End Sub
Aloaha Software / Knowledge Base / Smart Card API / Aloaha CSP API / Certificate Usage