Crescendo SDK
Loading...
Searching...
No Matches
CrescendoDLL.PCSC.PKIObject Class Reference

Represents a PIV (Personal Identity Verification) PKI (Public Key Infrastructure) object containing cryptographic material and metadata. More...

Public Member Functions

 PKIObject (byte[] data, AppletProperties appletProperties)
 Initializes a new PKIObject by parsing raw PIV card response data.
 

Properties

PIVCryptographicMechanismIdentifier AlgorithmID [get, set]
 Cryptographic algorithm identifier.
 
string AttestationKeyECCDomainParametersOIDLength = default! [get, set]
 Length of ECC domain parameters OID for attestation keys.
 
byte[] AttestationKeyECCDomainParametersOIDValue = default! [get, set]
 ASN.1 Object Identifier for ECC domain parameters.
 
string ContactlessUsageACR = default! [get, set]
 Access Control Rule for contactless operations.
 
string ContactUsageACR = default! [get, set]
 Access Control Rule for contact-based operations.
 
string KeyLength = default! [get, set]
 Key length in bits.
 
KeyPurposeCodingKeyPurpose [get, set]
 Authorized key usage purposes.
 
string KeyReferenceValue = default! [get, set]
 Key Reference value identifying the cryptographic key.
 
string MaxBufferLength = default! [get, set]
 Maximum supported data buffer length.
 
string PersonalizationACR = default! [get, set]
 Access Control Rule for personalization operations.
 
string PKIObjectName = default! [get, set]
 Human-readable name of the PKI object.
 
bool PrivateKeyInitialized [get, set]
 Indicates if private key material is initialized.
 
bool PublicKeyInitialized [get, set]
 Indicates if public key material is initialized.
 

Detailed Description

Represents a PIV (Personal Identity Verification) PKI (Public Key Infrastructure) object containing cryptographic material and metadata.

Implements parsing of PIV PKI Object data structures as defined in NIST SP 800-73-4.

Constructor & Destructor Documentation

◆ PKIObject()

CrescendoDLL.PCSC.PKIObject.PKIObject ( byte[]  data,
AppletProperties  appletProperties 
)
inline

Initializes a new PKIObject by parsing raw PIV card response data.

Parameters
dataBER-TLV encoded PKI object data
appletPropertiesPIV applet version and capabilities
Exceptions
ArgumentNullExceptionThrown if input data is null

Tag processing:

  • 0x48: Key reference and name mapping
  • 0x43: Cryptographic parameters
  • 0x4D: Access Control Rules (ACRs)
  • 0x42: Buffer length handling

References CrescendoDLL.PCSC.AppletProperties.AppletVersion, and CrescendoDLL.PCSC.PIV.

Property Documentation

◆ AlgorithmID

PIVCryptographicMechanismIdentifier CrescendoDLL.PCSC.PKIObject.AlgorithmID
getset

Cryptographic algorithm identifier.

Extracted from tag 0x43. Determines key type and operations (RSA/ECC/etc).

◆ AttestationKeyECCDomainParametersOIDLength

string CrescendoDLL.PCSC.PKIObject.AttestationKeyECCDomainParametersOIDLength = default!
getset

Length of ECC domain parameters OID for attestation keys.

◆ AttestationKeyECCDomainParametersOIDValue

byte [] CrescendoDLL.PCSC.PKIObject.AttestationKeyECCDomainParametersOIDValue = default!
getset

ASN.1 Object Identifier for ECC domain parameters.

Contains encoded OID bytes for curves like P-256/P-384.

◆ ContactlessUsageACR

string CrescendoDLL.PCSC.PKIObject.ContactlessUsageACR = default!
getset

Access Control Rule for contactless operations.

◆ ContactUsageACR

string CrescendoDLL.PCSC.PKIObject.ContactUsageACR = default!
getset

Access Control Rule for contact-based operations.

◆ KeyLength

string CrescendoDLL.PCSC.PKIObject.KeyLength = default!
getset

Key length in bits.

Hex string representation (e.g., "80" for 128 bits)

◆ KeyPurpose

KeyPurposeCoding? CrescendoDLL.PCSC.PKIObject.KeyPurpose
getset

Authorized key usage purposes.

◆ KeyReferenceValue

string CrescendoDLL.PCSC.PKIObject.KeyReferenceValue = default!
getset

Key Reference value identifying the cryptographic key.

2-character hex string (e.g., "9A")

Extracted from tag 0x48. Corresponds to PIV key reference identifiers.

◆ MaxBufferLength

string CrescendoDLL.PCSC.PKIObject.MaxBufferLength = default!
getset

Maximum supported data buffer length.

◆ PersonalizationACR

string CrescendoDLL.PCSC.PKIObject.PersonalizationACR = default!
getset

Access Control Rule for personalization operations.

◆ PKIObjectName

string CrescendoDLL.PCSC.PKIObject.PKIObjectName = default!
getset

Human-readable name of the PKI object.

◆ PrivateKeyInitialized

bool CrescendoDLL.PCSC.PKIObject.PrivateKeyInitialized
getset

Indicates if private key material is initialized.

◆ PublicKeyInitialized

bool CrescendoDLL.PCSC.PKIObject.PublicKeyInitialized
getset

Indicates if public key material is initialized.