Exposes high level PIV card edge in line with End-Point client application programming interface defined in SP 800-73-4. ref: https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-73-4.pdf Method names are conform with 800-73-4 as much as possible to indicate the exact PIV API middleware function targeted with this implementation.

Namespace: CardWerk.SmartCard.CardModule.PIV
Assembly: CardWerk.SmartCard.CardModule.PIV (in CardWerk.SmartCard.CardModule.PIV.dll)

Public Class PivCard 
Inherits CardModuleBase
This language is not supported or no code example is available.
public class PivCard : CardModuleBase
This language is not supported or no code example is available.
public ref class PivCard : public CardModuleBase^
This language is not supported or no code example is available.
public class PivCard 
extends CardModuleBase
This language is not supported or no code example is available.
Name Description
Public constructor PivCard(CardHandle) Constructor for high-level PIV card access.
Top
Name Description
Public property ATR (inherited from CardModuleBase).
Public property CardName (inherited from CardModuleBase).
Public property ErrorCode (inherited from CardModuleBase).
Public property ErrorMessage (inherited from CardModuleBase).
Public property IsReady (inherited from CardModuleBase).
Public property LicenseInfo (inherited from CardModuleBase).
Public property ModuleCardHandle (inherited from CardModuleBase).
Public property Version The card module version.
Public property VersionInfo (inherited from CardModuleBase).
Top
Name Description
Public method ChangeReferenceData(int, byte[], byte[]) Allow use of CHANGE REFERENCE DATA command.
Public method Connect() (NOT IMPLEMENTED) pivConnect() entry point as defined in PIV End-Point Client-Application Programming Interface SP 800-73-3. Use SmartCard API instead.
Public method Disconnect (inherited from CardModuleBase).
Public method Equals(Object) Determines whether the specified object is equal to the current object. (inherited from Object).
Public method GenerateKeyPair(byte, byte) Entry point for credential initialization and administration as defined in PIV End-Point Client-Application Programming Interface SP 800-73-3. Generates a public/private key pair.
Public method GetCardStandardIdentifier (inherited from CardModuleBase).
Public method GetData(byte[]) PIV GetData() entry point for data access as defined in PIV End-Point Client-Application Programming Interface SP 800-73-4 Reads a data object from a PIV card (data) container according to Special Publication 800- 73: Data such as Card Holder Unique IDentifier (CHUID) or X509 certificates can be read without prior authentication whereas containers with biometric data require user confirmation (PIN) GetData returns the complete raw container data including TLV headers and check bytes if applicable. GetData returns NULL if the container is not accessible, is not yet initialized or contains no payload. Expiration check and CHUID signature check (optional) RID 'A0 00 00 00 01 16', container ID = 0x3000 We do not use ASN.1 object identifiers (OIDs) in the personal verification subset of the OIDs managed by NIST but rather the ObjectID as defined on APDU level. Empty containers may actually contain two bytes 0x5300
Public method GetHashCode Serves as the default hash function. (inherited from Object).
Public method GetType Gets the Type of the current instance. (inherited from Object).
Public method PutData(byte[], byte[]) Entry point for credential initialization and administration as defined in PIV End-Point Client-Application Programming Interface of SP 800-73-3. This method adds header and trailer data necessary for PIV data containers. Make sure to have proper authentication in place to store new certificates.
Public method SelectApplet(byte[]) Selects application on a multi-application card. The AID can be an RID or RID + PIX. This method can be used to explore the card and find out what applets are loaded in case the host application wants to support multiple card configurations. This method can also be used as main entry point for data access as defined in PIV End-Point Client-Application Programming Interface SP 800-73-3 Note that cards might select a default applet at power- up. Selecting a different applet might change scope, exposing a different card edge.
Public method ToString Returns a string that represents the current object. (inherited from Object).
Public method Verify(int, byte[]) PIN verification method. If string is shorter than 8 digits, this method applies 0xFF padding on byte-level. This method is onl;y meant for user PIN. It does not support global PINs, PUKs SO PINs or transport PINs Note, that VERIFY command can use key references other than '00', '80', '96', '97', and '98', if they are used for card management operations. Internal PIN reference is always 0x80 Exammple: "1234" becomes 0x31323334FFFFFFFF.
Public method VerifyPin(string, ref int) PIN verification method. If string is shorter than 8 digits, this method applies 0xFF padding on byte-level. This method is only meant for user PIN. It does not support global PINs, PUKs SO PINs or transport PINs Internal PIN reference is always 0x80 Exammple: "1234" becomes 0x31323334FFFFFFFF.
Top
CardWerk.SmartCard.CardModule.PIV.PivCard

.NET Framework

Supported in: 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1

.NET Core

Supported in: 2.0, 2.1, 2.2, 3.0, 3.1, 5.0, 6.0, 7.0

.NET Standard

Supported in: 2.0