C# Класс Net.Pkcs11Interop.LowLevelAPI80.Pkcs11

Low level PKCS#11 wrapper
Наследование: IDisposable
Показать файл Открыть проект Примеры использования класса

Открытые методы

Метод Описание
C_CancelFunction ( ulong session ) : CKR

Legacy function which should simply return the value CKR_FUNCTION_NOT_PARALLEL

C_CloseAllSessions ( ulong slotId ) : CKR

Closes all sessions an application has with a token

C_CloseSession ( ulong session ) : CKR

Closes a session between an application and a token

C_CopyObject ( ulong session, ulong objectId, CK_ATTRIBUTE template, ulong count, ulong &newObjectId ) : CKR

Copies an object, creating a new object for the copy

C_CreateObject ( ulong session, CK_ATTRIBUTE template, ulong count, ulong &objectId ) : CKR

Creates a new object

C_Decrypt ( ulong session, byte encryptedData, ulong encryptedDataLen, byte data, ulong &dataLen ) : CKR

Decrypts encrypted data in a single part

C_DecryptDigestUpdate ( ulong session, byte encryptedPart, ulong encryptedPartLen, byte part, ulong &partLen ) : CKR

Continues a multi-part combined decryption and digest operation, processing another data part

C_DecryptFinal ( ulong session, byte lastPart, ulong &lastPartLen ) : CKR

Finishes a multi-part decryption operation

C_DecryptInit ( ulong session, CK_MECHANISM &mechanism, ulong key ) : CKR

Initializes a decryption operation

C_DecryptUpdate ( ulong session, byte encryptedPart, ulong encryptedPartLen, byte part, ulong &partLen ) : CKR

Continues a multi-part decryption operation, processing another encrypted data part

C_DecryptVerifyUpdate ( ulong session, byte encryptedPart, ulong encryptedPartLen, byte part, ulong &partLen ) : CKR

Continues a multi-part combined decryption and verification operation, processing another data part

C_DeriveKey ( ulong session, CK_MECHANISM &mechanism, ulong baseKey, CK_ATTRIBUTE template, ulong attributeCount, ulong &key ) : CKR

Derives a key from a base key, creating a new key object

C_DestroyObject ( ulong session, ulong objectId ) : CKR

Destroys an object

C_Digest ( ulong session, byte data, ulong dataLen, byte digest, ulong &digestLen ) : CKR

Digests data in a single part

C_DigestEncryptUpdate ( ulong session, byte part, ulong partLen, byte encryptedPart, ulong &encryptedPartLen ) : CKR

Continues multi-part digest and encryption operations, processing another data part

C_DigestFinal ( ulong session, byte digest, ulong &digestLen ) : CKR

Finishes a multi-part message-digesting operation, returning the message digest

C_DigestInit ( ulong session, CK_MECHANISM &mechanism ) : CKR

Initializes a message-digesting operation

C_DigestKey ( ulong session, ulong key ) : CKR

Continues a multi-part message-digesting operation by digesting the value of a secret key

C_DigestUpdate ( ulong session, byte part, ulong partLen ) : CKR

Continues a multi-part message-digesting operation, processing another data part

C_Encrypt ( ulong session, byte data, ulong dataLen, byte encryptedData, ulong &encryptedDataLen ) : CKR

Encrypts single-part data

C_EncryptFinal ( ulong session, byte lastEncryptedPart, ulong &lastEncryptedPartLen ) : CKR

Finishes a multi-part encryption operation

C_EncryptInit ( ulong session, CK_MECHANISM &mechanism, ulong key ) : CKR

Initializes an encryption operation

C_EncryptUpdate ( ulong session, byte part, ulong partLen, byte encryptedPart, ulong &encryptedPartLen ) : CKR

Continues a multi-part encryption operation, processing another data part

C_Finalize ( IntPtr reserved ) : CKR

Called to indicate that an application is finished with the Cryptoki library. It should be the last Cryptoki call made by an application.

C_FindObjects ( ulong session, ulong objectId, ulong maxObjectCount, ulong &objectCount ) : CKR

Continues a search for token and session objects that match a template, obtaining additional object handles

C_FindObjectsFinal ( ulong session ) : CKR

Terminates a search for token and session objects

C_FindObjectsInit ( ulong session, CK_ATTRIBUTE template, ulong count ) : CKR

Initializes a search for token and session objects that match a template

C_GenerateKey ( ulong session, CK_MECHANISM &mechanism, CK_ATTRIBUTE template, ulong count, ulong &key ) : CKR

Generates a secret key or set of domain parameters, creating a new object

C_GenerateKeyPair ( ulong session, CK_MECHANISM &mechanism, CK_ATTRIBUTE publicKeyTemplate, ulong publicKeyAttributeCount, CK_ATTRIBUTE privateKeyTemplate, ulong privateKeyAttributeCount, ulong &publicKey, ulong &privateKey ) : CKR

Generates a public/private key pair, creating new key objects

C_GenerateRandom ( ulong session, byte randomData, ulong randomLen ) : CKR

Generates random or pseudo-random data

C_GetAttributeValue ( ulong session, ulong objectId, CK_ATTRIBUTE template, ulong count ) : CKR

Obtains the value of one or more attributes of an object

C_GetFunctionList ( IntPtr &functionList ) : CKR

Returns a pointer to the Cryptoki library's list of function pointers

C_GetFunctionStatus ( ulong session ) : CKR

Legacy function which should simply return the value CKR_FUNCTION_NOT_PARALLEL

C_GetInfo ( CK_INFO &info ) : CKR

Returns general information about Cryptoki

C_GetMechanismInfo ( ulong slotId, CKM type, CK_MECHANISM_INFO &info ) : CKR

Obtains information about a particular mechanism possibly supported by a token

C_GetMechanismList ( ulong slotId, CKM mechanismList, ulong &count ) : CKR

Obtains a list of mechanism types supported by a token

C_GetObjectSize ( ulong session, ulong objectId, ulong &size ) : CKR

Gets the size of an object in bytes

C_GetOperationState ( ulong session, byte operationState, ulong &operationStateLen ) : CKR

Obtains a copy of the cryptographic operations state of a session encoded as byte array

C_GetSessionInfo ( ulong session, CK_SESSION_INFO &info ) : CKR

Obtains information about a session

C_GetSlotInfo ( ulong slotId, CK_SLOT_INFO &info ) : CKR

Obtains information about a particular slot in the system

C_GetSlotList ( bool tokenPresent, ulong slotList, ulong &count ) : CKR

Obtains a list of slots in the system

C_GetTokenInfo ( ulong slotId, CK_TOKEN_INFO &info ) : CKR

Obtains information about a particular token in the system

C_InitPIN ( ulong session, byte pin, ulong pinLen ) : CKR

Initializes the normal user's PIN

C_InitToken ( ulong slotId, byte pin, ulong pinLen, byte label ) : CKR

Initializes a token

C_Initialize ( CK_C_INITIALIZE_ARGS initArgs ) : CKR

Initializes the Cryptoki library

C_Login ( ulong session, CKU userType, byte pin, ulong pinLen ) : CKR

Logs a user into a token

C_Logout ( ulong session ) : CKR

Logs a user out from a token

C_OpenSession ( ulong slotId, ulong flags, IntPtr application, IntPtr notify, ulong &session ) : CKR

Opens a session between an application and a token in a particular slot

C_SeedRandom ( ulong session, byte seed, ulong seedLen ) : CKR

Mixes additional seed material into the token's random number generator

C_SetAttributeValue ( ulong session, ulong objectId, CK_ATTRIBUTE template, ulong count ) : CKR

Modifies the value of one or more attributes of an object

C_SetOperationState ( ulong session, byte operationState, ulong operationStateLen, ulong encryptionKey, ulong authenticationKey ) : CKR

Restores the cryptographic operations state of a session from bytes obtained with C_GetOperationState

C_SetPIN ( ulong session, byte oldPin, ulong oldPinLen, byte newPin, ulong newPinLen ) : CKR

Modifies the PIN of the user that is currently logged in, or the CKU_USER PIN if the session is not logged in

C_Sign ( ulong session, byte data, ulong dataLen, byte signature, ulong &signatureLen ) : CKR

Signs data in a single part, where the signature is an appendix to the data

C_SignEncryptUpdate ( ulong session, byte part, ulong partLen, byte encryptedPart, ulong &encryptedPartLen ) : CKR

Continues a multi-part combined signature and encryption operation, processing another data part

C_SignFinal ( ulong session, byte signature, ulong &signatureLen ) : CKR

Finishes a multi-part signature operation, returning the signature

C_SignInit ( ulong session, CK_MECHANISM &mechanism, ulong key ) : CKR

Initializes a signature operation, where the signature is an appendix to the data

C_SignRecover ( ulong session, byte data, ulong dataLen, byte signature, ulong &signatureLen ) : CKR

Signs data in a single operation, where the data can be recovered from the signature

C_SignRecoverInit ( ulong session, CK_MECHANISM &mechanism, ulong key ) : CKR

Initializes a signature operation, where the data can be recovered from the signature

C_SignUpdate ( ulong session, byte part, ulong partLen ) : CKR

Continues a multi-part signature operation, processing another data part

C_UnwrapKey ( ulong session, CK_MECHANISM &mechanism, ulong unwrappingKey, byte wrappedKey, ulong wrappedKeyLen, CK_ATTRIBUTE template, ulong attributeCount, ulong &key ) : CKR

Unwraps (i.e. decrypts) a wrapped key, creating a new private key or secret key object

C_Verify ( ulong session, byte data, ulong dataLen, byte signature, ulong signatureLen ) : CKR

Verifies a signature in a single-part operation, where the signature is an appendix to the data

C_VerifyFinal ( ulong session, byte signature, ulong signatureLen ) : CKR

Finishes a multi-part verification operation, checking the signature

C_VerifyInit ( ulong session, CK_MECHANISM &mechanism, ulong key ) : CKR

Initializes a verification operation, where the signature is an appendix to the data

C_VerifyRecover ( ulong session, byte signature, ulong signatureLen, byte data, ulong &dataLen ) : CKR

Verifies a signature in a single-part operation, where the data is recovered from the signature

C_VerifyRecoverInit ( ulong session, CK_MECHANISM &mechanism, ulong key ) : CKR

Initializes a signature verification operation, where the data is recovered from the signature

C_VerifyUpdate ( ulong session, byte part, ulong partLen ) : CKR

Continues a multi-part verification operation, processing another data part

C_WaitForSlotEvent ( ulong flags, ulong &slot, IntPtr reserved ) : CKR

Waits for a slot event, such as token insertion or token removal, to occur

C_WrapKey ( ulong session, CK_MECHANISM &mechanism, ulong wrappingKey, ulong key, byte wrappedKey, ulong &wrappedKeyLen ) : CKR

Wraps (i.e., encrypts) a private or secret key

Dispose ( ) : void

Disposes object

Pkcs11 ( string libraryPath ) : System

Loads PCKS#11 library

Pkcs11 ( string libraryPath, bool useGetFunctionList ) : System

Loads PCKS#11 library

Защищенные методы

Метод Описание
Dispose ( bool disposing ) : void

Disposes object

Приватные методы

Метод Описание
Release ( ) : void

Unloads PKCS#11 library. Called automaticaly when object is being disposed.

Описание методов

C_CancelFunction() публичный Метод

Legacy function which should simply return the value CKR_FUNCTION_NOT_PARALLEL
public C_CancelFunction ( ulong session ) : CKR
session ulong The session's handle
Результат CKR

C_CloseAllSessions() публичный Метод

Closes all sessions an application has with a token
public C_CloseAllSessions ( ulong slotId ) : CKR
slotId ulong The ID of the token's slot
Результат CKR

C_CloseSession() публичный Метод

Closes a session between an application and a token
public C_CloseSession ( ulong session ) : CKR
session ulong The session's handle
Результат CKR

C_CopyObject() публичный Метод

Copies an object, creating a new object for the copy
public C_CopyObject ( ulong session, ulong objectId, CK_ATTRIBUTE template, ulong count, ulong &newObjectId ) : CKR
session ulong The session's handle
objectId ulong The object's handle
template CK_ATTRIBUTE Template for the new object
count ulong The number of attributes in the template
newObjectId ulong Location that receives the handle for the copy of the object
Результат CKR

C_CreateObject() публичный Метод

Creates a new object
public C_CreateObject ( ulong session, CK_ATTRIBUTE template, ulong count, ulong &objectId ) : CKR
session ulong The session's handle
template CK_ATTRIBUTE Object's template
count ulong The number of attributes in the template
objectId ulong Location that receives the new object's handle
Результат CKR

C_Decrypt() публичный Метод

Decrypts encrypted data in a single part
public C_Decrypt ( ulong session, byte encryptedData, ulong encryptedDataLen, byte data, ulong &dataLen ) : CKR
session ulong The session's handle
encryptedData byte Encrypted data
encryptedDataLen ulong The length of the encrypted data
data byte /// If set to null then the length of decrypted data is returned in "dataLen" parameter, without actually returning decrypted data. /// If not set to null then "dataLen" parameter must contain the lenght of data array and decrypted data is returned in "data" parameter. ///
dataLen ulong Location that holds the length of the decrypted data
Результат CKR

C_DecryptDigestUpdate() публичный Метод

Continues a multi-part combined decryption and digest operation, processing another data part
public C_DecryptDigestUpdate ( ulong session, byte encryptedPart, ulong encryptedPartLen, byte part, ulong &partLen ) : CKR
session ulong The session's handle
encryptedPart byte Encrypted data part
encryptedPartLen ulong Length of the encrypted data part
part byte /// If set to null then the length of decrypted data part is returned in "partLen" parameter, without actually returning decrypted data part. /// If not set to null then "partLen" parameter must contain the lenght of part array and decrypted data part is returned in "part" parameter. ///
partLen ulong Location that holds the length of the decrypted data part
Результат CKR

C_DecryptFinal() публичный Метод

Finishes a multi-part decryption operation
public C_DecryptFinal ( ulong session, byte lastPart, ulong &lastPartLen ) : CKR
session ulong The session's handle
lastPart byte /// If set to null then the length of last decrypted data part is returned in "lastPartLen" parameter, without actually returning last decrypted data part. /// If not set to null then "lastPartLen" parameter must contain the lenght of lastPart array and last decrypted data part is returned in "lastPart" parameter. ///
lastPartLen ulong Location that holds the length of the last decrypted data part
Результат CKR

C_DecryptInit() публичный Метод

Initializes a decryption operation
public C_DecryptInit ( ulong session, CK_MECHANISM &mechanism, ulong key ) : CKR
session ulong The session's handle
mechanism CK_MECHANISM The decryption mechanism
key ulong The handle of the decryption key
Результат CKR

C_DecryptUpdate() публичный Метод

Continues a multi-part decryption operation, processing another encrypted data part
public C_DecryptUpdate ( ulong session, byte encryptedPart, ulong encryptedPartLen, byte part, ulong &partLen ) : CKR
session ulong The session's handle
encryptedPart byte Encrypted data part
encryptedPartLen ulong Length of the encrypted data part
part byte /// If set to null then the length of decrypted data part is returned in "partLen" parameter, without actually returning decrypted data part. /// If not set to null then "partLen" parameter must contain the lenght of part array and decrypted data part is returned in "part" parameter. ///
partLen ulong Location that holds the length of the decrypted data part
Результат CKR

C_DecryptVerifyUpdate() публичный Метод

Continues a multi-part combined decryption and verification operation, processing another data part
public C_DecryptVerifyUpdate ( ulong session, byte encryptedPart, ulong encryptedPartLen, byte part, ulong &partLen ) : CKR
session ulong The session's handle
encryptedPart byte Encrypted data part
encryptedPartLen ulong Length of the encrypted data part
part byte /// If set to null then the length of decrypted data part is returned in "partLen" parameter, without actually returning decrypted data part. /// If not set to null then "partLen" parameter must contain the lenght of part array and decrypted data part is returned in "part" parameter. ///
partLen ulong Location that holds the length of the decrypted data part
Результат CKR

C_DeriveKey() публичный Метод

Derives a key from a base key, creating a new key object
public C_DeriveKey ( ulong session, CK_MECHANISM &mechanism, ulong baseKey, CK_ATTRIBUTE template, ulong attributeCount, ulong &key ) : CKR
session ulong The session's handle
mechanism CK_MECHANISM Key derivation mechanism
baseKey ulong The handle of the base key
template CK_ATTRIBUTE The template for the new key
attributeCount ulong The number of attributes in the template
key ulong Location that receives the handle of the derived key
Результат CKR

C_DestroyObject() публичный Метод

Destroys an object
public C_DestroyObject ( ulong session, ulong objectId ) : CKR
session ulong The session's handle
objectId ulong The object's handle
Результат CKR

C_Digest() публичный Метод

Digests data in a single part
public C_Digest ( ulong session, byte data, ulong dataLen, byte digest, ulong &digestLen ) : CKR
session ulong The session's handle
data byte Data to be digested
dataLen ulong The length of the data to be digested
digest byte /// If set to null then the length of digest is returned in "digestLen" parameter, without actually returning digest. /// If not set to null then "digestLen" parameter must contain the lenght of digest array and digest is returned in "digest" parameter. ///
digestLen ulong Location that holds the length of the message digest
Результат CKR

C_DigestEncryptUpdate() публичный Метод

Continues multi-part digest and encryption operations, processing another data part
public C_DigestEncryptUpdate ( ulong session, byte part, ulong partLen, byte encryptedPart, ulong &encryptedPartLen ) : CKR
session ulong The session's handle
part byte The data part to be digested and encrypted
partLen ulong Length of data part in bytes
encryptedPart byte /// If set to null then the length of encrypted data part is returned in "encryptedPartLen" parameter, without actually returning encrypted data part. /// If not set to null then "encryptedPartLen" parameter must contain the lenght of encryptedPart array and encrypted data part is returned in "encryptedPart" parameter. ///
encryptedPartLen ulong Location that holds the length in bytes of the encrypted data part
Результат CKR

C_DigestFinal() публичный Метод

Finishes a multi-part message-digesting operation, returning the message digest
public C_DigestFinal ( ulong session, byte digest, ulong &digestLen ) : CKR
session ulong The session's handle
digest byte /// If set to null then the length of digest is returned in "digestLen" parameter, without actually returning digest. /// If not set to null then "digestLen" parameter must contain the lenght of digest array and digest is returned in "digest" parameter. ///
digestLen ulong Location that holds the length of the message digest
Результат CKR

C_DigestInit() публичный Метод

Initializes a message-digesting operation
public C_DigestInit ( ulong session, CK_MECHANISM &mechanism ) : CKR
session ulong The session's handle
mechanism CK_MECHANISM The digesting mechanism
Результат CKR

C_DigestKey() публичный Метод

Continues a multi-part message-digesting operation by digesting the value of a secret key
public C_DigestKey ( ulong session, ulong key ) : CKR
session ulong The session's handle
key ulong The handle of the secret key to be digested
Результат CKR

C_DigestUpdate() публичный Метод

Continues a multi-part message-digesting operation, processing another data part
public C_DigestUpdate ( ulong session, byte part, ulong partLen ) : CKR
session ulong The session's handle
part byte Data part
partLen ulong The length of the data part
Результат CKR

C_Encrypt() публичный Метод

Encrypts single-part data
public C_Encrypt ( ulong session, byte data, ulong dataLen, byte encryptedData, ulong &encryptedDataLen ) : CKR
session ulong The session's handle
data byte Data to be encrypted
dataLen ulong Length of data in bytes
encryptedData byte /// If set to null then the length of encrypted data is returned in "encryptedDataLen" parameter, without actually returning encrypted data. /// If not set to null then "encryptedDataLen" parameter must contain the lenght of encryptedData array and encrypted data is returned in "encryptedData" parameter. ///
encryptedDataLen ulong Location that holds the length in bytes of the encrypted data
Результат CKR

C_EncryptFinal() публичный Метод

Finishes a multi-part encryption operation
public C_EncryptFinal ( ulong session, byte lastEncryptedPart, ulong &lastEncryptedPartLen ) : CKR
session ulong The session's handle
lastEncryptedPart byte /// If set to null then the length of last encrypted data part is returned in "lastEncryptedPartLen" parameter, without actually returning last encrypted data part. /// If not set to null then "lastEncryptedPartLen" parameter must contain the lenght of lastEncryptedPart array and last encrypted data part is returned in "lastEncryptedPart" parameter. ///
lastEncryptedPartLen ulong Location that holds the length of the last encrypted data part
Результат CKR

C_EncryptInit() публичный Метод

Initializes an encryption operation
public C_EncryptInit ( ulong session, CK_MECHANISM &mechanism, ulong key ) : CKR
session ulong The session's handle
mechanism CK_MECHANISM The encryption mechanism
key ulong The handle of the encryption key
Результат CKR

C_EncryptUpdate() публичный Метод

Continues a multi-part encryption operation, processing another data part
public C_EncryptUpdate ( ulong session, byte part, ulong partLen, byte encryptedPart, ulong &encryptedPartLen ) : CKR
session ulong The session's handle
part byte The data part to be encrypted
partLen ulong Length of data part in bytes
encryptedPart byte /// If set to null then the length of encrypted data part is returned in "encryptedPartLen" parameter, without actually returning encrypted data part. /// If not set to null then "encryptedPartLen" parameter must contain the lenght of encryptedPart array and encrypted data part is returned in "encryptedPart" parameter. ///
encryptedPartLen ulong Location that holds the length in bytes of the encrypted data part
Результат CKR

C_Finalize() публичный Метод

Called to indicate that an application is finished with the Cryptoki library. It should be the last Cryptoki call made by an application.
public C_Finalize ( IntPtr reserved ) : CKR
reserved System.IntPtr Reserved for future versions. For this version, it should be set to null.
Результат CKR

C_FindObjects() публичный Метод

Continues a search for token and session objects that match a template, obtaining additional object handles
public C_FindObjects ( ulong session, ulong objectId, ulong maxObjectCount, ulong &objectCount ) : CKR
session ulong The session's handle
objectId ulong Location that receives the list (array) of additional object handles
maxObjectCount ulong The maximum number of object handles to be returned
objectCount ulong Location that receives the actual number of object handles returned
Результат CKR

C_FindObjectsFinal() публичный Метод

Terminates a search for token and session objects
public C_FindObjectsFinal ( ulong session ) : CKR
session ulong The session's handle
Результат CKR

C_FindObjectsInit() публичный Метод

Initializes a search for token and session objects that match a template
public C_FindObjectsInit ( ulong session, CK_ATTRIBUTE template, ulong count ) : CKR
session ulong The session's handle
template CK_ATTRIBUTE Search template that specifies the attribute values to match
count ulong The number of attributes in the search template
Результат CKR

C_GenerateKey() публичный Метод

Generates a secret key or set of domain parameters, creating a new object
public C_GenerateKey ( ulong session, CK_MECHANISM &mechanism, CK_ATTRIBUTE template, ulong count, ulong &key ) : CKR
session ulong The session's handle
mechanism CK_MECHANISM Key generation mechanism
template CK_ATTRIBUTE The template for the new key or set of domain parameters
count ulong The number of attributes in the template
key ulong Location that receives the handle of the new key or set of domain parameters
Результат CKR

C_GenerateKeyPair() публичный Метод

Generates a public/private key pair, creating new key objects
public C_GenerateKeyPair ( ulong session, CK_MECHANISM &mechanism, CK_ATTRIBUTE publicKeyTemplate, ulong publicKeyAttributeCount, CK_ATTRIBUTE privateKeyTemplate, ulong privateKeyAttributeCount, ulong &publicKey, ulong &privateKey ) : CKR
session ulong The session's handle
mechanism CK_MECHANISM Key generation mechanism
publicKeyTemplate CK_ATTRIBUTE The template for the public key
publicKeyAttributeCount ulong The number of attributes in the public-key template
privateKeyTemplate CK_ATTRIBUTE The template for the private key
privateKeyAttributeCount ulong The number of attributes in the private-key template
publicKey ulong Location that receives the handle of the new public key
privateKey ulong Location that receives the handle of the new private key
Результат CKR

C_GenerateRandom() публичный Метод

Generates random or pseudo-random data
public C_GenerateRandom ( ulong session, byte randomData, ulong randomLen ) : CKR
session ulong The session's handle
randomData byte Location that receives the random data
randomLen ulong The length in bytes of the random or pseudo-random data to be generated
Результат CKR

C_GetAttributeValue() публичный Метод

Obtains the value of one or more attributes of an object
public C_GetAttributeValue ( ulong session, ulong objectId, CK_ATTRIBUTE template, ulong count ) : CKR
session ulong The session's handle
objectId ulong The object's handle
template CK_ATTRIBUTE Template that specifies which attribute values are to be obtained, and receives the attribute values
count ulong The number of attributes in the template
Результат CKR

C_GetFunctionList() публичный Метод

Returns a pointer to the Cryptoki library's list of function pointers
public C_GetFunctionList ( IntPtr &functionList ) : CKR
functionList IntPtr Pointer to a value which will receive a pointer to the library's CK_FUNCTION_LIST structure
Результат CKR

C_GetFunctionStatus() публичный Метод

Legacy function which should simply return the value CKR_FUNCTION_NOT_PARALLEL
public C_GetFunctionStatus ( ulong session ) : CKR
session ulong The session's handle
Результат CKR

C_GetInfo() публичный Метод

Returns general information about Cryptoki
public C_GetInfo ( CK_INFO &info ) : CKR
info CK_INFO Structure that receives the information
Результат CKR

C_GetMechanismInfo() публичный Метод

Obtains information about a particular mechanism possibly supported by a token
public C_GetMechanismInfo ( ulong slotId, CKM type, CK_MECHANISM_INFO &info ) : CKR
slotId ulong The ID of the token's slot
type CKM The type of mechanism
info CK_MECHANISM_INFO Structure that receives the mechanism information
Результат CKR

C_GetMechanismList() публичный Метод

Obtains a list of mechanism types supported by a token
public C_GetMechanismList ( ulong slotId, CKM mechanismList, ulong &count ) : CKR
slotId ulong The ID of the token's slot
mechanismList CKM /// If set to null then the number of mechanisms is returned in "count" parameter, without actually returning a list of mechanisms. /// If not set to null then "count" parameter must contain the lenght of mechanismList array and mechanism list is returned in "mechanismList" parameter. ///
count ulong Location that receives the number of mechanisms
Результат CKR

C_GetObjectSize() публичный Метод

Gets the size of an object in bytes
public C_GetObjectSize ( ulong session, ulong objectId, ulong &size ) : CKR
session ulong The session's handle
objectId ulong The object's handle
size ulong Location that receives the size in bytes of the object
Результат CKR

C_GetOperationState() публичный Метод

Obtains a copy of the cryptographic operations state of a session encoded as byte array
public C_GetOperationState ( ulong session, byte operationState, ulong &operationStateLen ) : CKR
session ulong The session's handle
operationState byte /// If set to null then the length of state is returned in "operationStateLen" parameter, without actually returning a state. /// If not set to null then "operationStateLen" parameter must contain the lenght of operationState array and state is returned in "operationState" parameter. ///
operationStateLen ulong Location that receives the length in bytes of the state
Результат CKR

C_GetSessionInfo() публичный Метод

Obtains information about a session
public C_GetSessionInfo ( ulong session, CK_SESSION_INFO &info ) : CKR
session ulong The session's handle
info CK_SESSION_INFO Structure that receives the session information
Результат CKR

C_GetSlotInfo() публичный Метод

Obtains information about a particular slot in the system
public C_GetSlotInfo ( ulong slotId, CK_SLOT_INFO &info ) : CKR
slotId ulong The ID of the slot
info CK_SLOT_INFO Structure that receives the slot information
Результат CKR

C_GetSlotList() публичный Метод

Obtains a list of slots in the system
public C_GetSlotList ( bool tokenPresent, ulong slotList, ulong &count ) : CKR
tokenPresent bool Indicates whether the list obtained includes only those slots with a token present (true) or all slots (false)
slotList ulong /// If set to null then the number of slots is returned in "count" parameter, without actually returning a list of slots. /// If not set to null then "count" parameter must contain the lenght of slotList array and slot list is returned in "slotList" parameter. ///
count ulong Location that receives the number of slots
Результат CKR

C_GetTokenInfo() публичный Метод

Obtains information about a particular token in the system
public C_GetTokenInfo ( ulong slotId, CK_TOKEN_INFO &info ) : CKR
slotId ulong The ID of the token's slot
info CK_TOKEN_INFO Structure that receives the token information
Результат CKR

C_InitPIN() публичный Метод

Initializes the normal user's PIN
public C_InitPIN ( ulong session, byte pin, ulong pinLen ) : CKR
session ulong The session's handle
pin byte Normal user's PIN or null to use protected authentication path (pinpad)
pinLen ulong The length of the PIN in bytes
Результат CKR

C_InitToken() публичный Метод

Initializes a token
public C_InitToken ( ulong slotId, byte pin, ulong pinLen, byte label ) : CKR
slotId ulong The ID of the token's slot
pin byte SO's initial PIN or null to use protected authentication path (pinpad)
pinLen ulong The length of the PIN in bytes
label byte 32-byte long label of the token which must be padded with blank characters
Результат CKR

C_Initialize() публичный Метод

Initializes the Cryptoki library
public C_Initialize ( CK_C_INITIALIZE_ARGS initArgs ) : CKR
initArgs CK_C_INITIALIZE_ARGS CK_C_INITIALIZE_ARGS structure containing information on how the library should deal with multi-threaded access or null if an application will not be accessing Cryptoki through multiple threads simultaneously
Результат CKR

C_Login() публичный Метод

Logs a user into a token
public C_Login ( ulong session, CKU userType, byte pin, ulong pinLen ) : CKR
session ulong The session's handle
userType CKU The user type
pin byte User's PIN or null to use protected authentication path (pinpad)
pinLen ulong Length of user's PIN
Результат CKR

C_Logout() публичный Метод

Logs a user out from a token
public C_Logout ( ulong session ) : CKR
session ulong The session's handle
Результат CKR

C_OpenSession() публичный Метод

Opens a session between an application and a token in a particular slot
public C_OpenSession ( ulong slotId, ulong flags, IntPtr application, IntPtr notify, ulong &session ) : CKR
slotId ulong The ID of the token's slot
flags ulong Flags indicating the type of session
application IntPtr An application defined pointer to be passed to the notification callback
notify IntPtr The address of the notification callback function
session ulong Location that receives the handle for the new session
Результат CKR

C_SeedRandom() публичный Метод

Mixes additional seed material into the token's random number generator
public C_SeedRandom ( ulong session, byte seed, ulong seedLen ) : CKR
session ulong The session's handle
seed byte The seed material
seedLen ulong The length of the seed material
Результат CKR

C_SetAttributeValue() публичный Метод

Modifies the value of one or more attributes of an object
public C_SetAttributeValue ( ulong session, ulong objectId, CK_ATTRIBUTE template, ulong count ) : CKR
session ulong The session's handle
objectId ulong The object's handle
template CK_ATTRIBUTE Template that specifies which attribute values are to be modified and their new values
count ulong The number of attributes in the template
Результат CKR

C_SetOperationState() публичный Метод

Restores the cryptographic operations state of a session from bytes obtained with C_GetOperationState
public C_SetOperationState ( ulong session, byte operationState, ulong operationStateLen, ulong encryptionKey, ulong authenticationKey ) : CKR
session ulong The session's handle
operationState byte Saved session state
operationStateLen ulong Length of saved session state
encryptionKey ulong Handle to the key which will be used for an ongoing encryption or decryption operation in the restored session or CK_INVALID_HANDLE if not needed
authenticationKey ulong Handle to the key which will be used for an ongoing operation in the restored session or CK_INVALID_HANDLE if not needed
Результат CKR

C_SetPIN() публичный Метод

Modifies the PIN of the user that is currently logged in, or the CKU_USER PIN if the session is not logged in
public C_SetPIN ( ulong session, byte oldPin, ulong oldPinLen, byte newPin, ulong newPinLen ) : CKR
session ulong The session's handle
oldPin byte Old PIN or null to use protected authentication path (pinpad)
oldPinLen ulong The length of the old PIN in bytes
newPin byte New PIN or null to use protected authentication path (pinpad)
newPinLen ulong The length of the new PIN in bytes
Результат CKR

C_Sign() публичный Метод

Signs data in a single part, where the signature is an appendix to the data
public C_Sign ( ulong session, byte data, ulong dataLen, byte signature, ulong &signatureLen ) : CKR
session ulong The session's handle
data byte Data to be signed
dataLen ulong The length of the data
signature byte /// If set to null then the length of signature is returned in "signatureLen" parameter, without actually returning signature. /// If not set to null then "signatureLen" parameter must contain the lenght of signature array and signature is returned in "signature" parameter. ///
signatureLen ulong Location that holds the length of the signature
Результат CKR

C_SignEncryptUpdate() публичный Метод

Continues a multi-part combined signature and encryption operation, processing another data part
public C_SignEncryptUpdate ( ulong session, byte part, ulong partLen, byte encryptedPart, ulong &encryptedPartLen ) : CKR
session ulong The session's handle
part byte The data part to be signed and encrypted
partLen ulong Length of data part in bytes
encryptedPart byte /// If set to null then the length of encrypted data part is returned in "encryptedPartLen" parameter, without actually returning encrypted data part. /// If not set to null then "encryptedPartLen" parameter must contain the lenght of encryptedPart array and encrypted data part is returned in "encryptedPart" parameter. ///
encryptedPartLen ulong Location that holds the length in bytes of the encrypted data part
Результат CKR

C_SignFinal() публичный Метод

Finishes a multi-part signature operation, returning the signature
public C_SignFinal ( ulong session, byte signature, ulong &signatureLen ) : CKR
session ulong The session's handle
signature byte /// If set to null then the length of signature is returned in "signatureLen" parameter, without actually returning signature. /// If not set to null then "signatureLen" parameter must contain the lenght of signature array and signature is returned in "signature" parameter. ///
signatureLen ulong Location that holds the length of the signature
Результат CKR

C_SignInit() публичный Метод

Initializes a signature operation, where the signature is an appendix to the data
public C_SignInit ( ulong session, CK_MECHANISM &mechanism, ulong key ) : CKR
session ulong The session's handle
mechanism CK_MECHANISM Signature mechanism
key ulong Handle of the signature key
Результат CKR

C_SignRecover() публичный Метод

Signs data in a single operation, where the data can be recovered from the signature
public C_SignRecover ( ulong session, byte data, ulong dataLen, byte signature, ulong &signatureLen ) : CKR
session ulong The session's handle
data byte Data to be signed
dataLen ulong The length of data to be signed
signature byte /// If set to null then the length of signature is returned in "signatureLen" parameter, without actually returning signature. /// If not set to null then "signatureLen" parameter must contain the lenght of signature array and signature is returned in "signature" parameter. ///
signatureLen ulong Location that holds the length of the signature
Результат CKR

C_SignRecoverInit() публичный Метод

Initializes a signature operation, where the data can be recovered from the signature
public C_SignRecoverInit ( ulong session, CK_MECHANISM &mechanism, ulong key ) : CKR
session ulong The session's handle
mechanism CK_MECHANISM Signature mechanism
key ulong Handle of the signature key
Результат CKR

C_SignUpdate() публичный Метод

Continues a multi-part signature operation, processing another data part
public C_SignUpdate ( ulong session, byte part, ulong partLen ) : CKR
session ulong The session's handle
part byte Data part
partLen ulong The length of the data part
Результат CKR

C_UnwrapKey() публичный Метод

Unwraps (i.e. decrypts) a wrapped key, creating a new private key or secret key object
public C_UnwrapKey ( ulong session, CK_MECHANISM &mechanism, ulong unwrappingKey, byte wrappedKey, ulong wrappedKeyLen, CK_ATTRIBUTE template, ulong attributeCount, ulong &key ) : CKR
session ulong The session's handle
mechanism CK_MECHANISM Unwrapping mechanism
unwrappingKey ulong The handle of the unwrapping key
wrappedKey byte Wrapped key
wrappedKeyLen ulong The length of the wrapped key
template CK_ATTRIBUTE The template for the new key
attributeCount ulong The number of attributes in the template
key ulong Location that receives the handle of the unwrapped key
Результат CKR

C_Verify() публичный Метод

Verifies a signature in a single-part operation, where the signature is an appendix to the data
public C_Verify ( ulong session, byte data, ulong dataLen, byte signature, ulong signatureLen ) : CKR
session ulong The session's handle
data byte Data that were signed
dataLen ulong The length of the data
signature byte Signature of data
signatureLen ulong The length of signature
Результат CKR

C_VerifyFinal() публичный Метод

Finishes a multi-part verification operation, checking the signature
public C_VerifyFinal ( ulong session, byte signature, ulong signatureLen ) : CKR
session ulong The session's handle
signature byte Signature
signatureLen ulong The length of signature
Результат CKR

C_VerifyInit() публичный Метод

Initializes a verification operation, where the signature is an appendix to the data
public C_VerifyInit ( ulong session, CK_MECHANISM &mechanism, ulong key ) : CKR
session ulong The session's handle
mechanism CK_MECHANISM The verification mechanism
key ulong The handle of the verification key
Результат CKR

C_VerifyRecover() публичный Метод

Verifies a signature in a single-part operation, where the data is recovered from the signature
public C_VerifyRecover ( ulong session, byte signature, ulong signatureLen, byte data, ulong &dataLen ) : CKR
session ulong The session's handle
signature byte Signature
signatureLen ulong The length of signature
data byte /// If set to null then the length of recovered data is returned in "dataLen" parameter, without actually returning recovered data. /// If not set to null then "dataLen" parameter must contain the lenght of data array and recovered data is returned in "data" parameter. ///
dataLen ulong Location that holds the length of the decrypted data
Результат CKR

C_VerifyRecoverInit() публичный Метод

Initializes a signature verification operation, where the data is recovered from the signature
public C_VerifyRecoverInit ( ulong session, CK_MECHANISM &mechanism, ulong key ) : CKR
session ulong The session's handle
mechanism CK_MECHANISM Verification mechanism
key ulong The handle of the verification key
Результат CKR

C_VerifyUpdate() публичный Метод

Continues a multi-part verification operation, processing another data part
public C_VerifyUpdate ( ulong session, byte part, ulong partLen ) : CKR
session ulong The session's handle
part byte Data part
partLen ulong The length of the data part
Результат CKR

C_WaitForSlotEvent() публичный Метод

Waits for a slot event, such as token insertion or token removal, to occur
public C_WaitForSlotEvent ( ulong flags, ulong &slot, IntPtr reserved ) : CKR
flags ulong Determines whether or not the C_WaitForSlotEvent call blocks (i.e., waits for a slot event to occur)
slot ulong Location which will receive the ID of the slot that the event occurred in
reserved IntPtr Reserved for future versions (should be null)
Результат CKR

C_WrapKey() публичный Метод

Wraps (i.e., encrypts) a private or secret key
public C_WrapKey ( ulong session, CK_MECHANISM &mechanism, ulong wrappingKey, ulong key, byte wrappedKey, ulong &wrappedKeyLen ) : CKR
session ulong The session's handle
mechanism CK_MECHANISM Wrapping mechanism
wrappingKey ulong The handle of the wrapping key
key ulong The handle of the key to be wrapped
wrappedKey byte /// If set to null then the length of wrapped key is returned in "wrappedKeyLen" parameter, without actually returning wrapped key. /// If not set to null then "wrappedKeyLen" parameter must contain the lenght of wrappedKey array and wrapped key is returned in "wrappedKey" parameter. ///
wrappedKeyLen ulong Location that receives the length of the wrapped key
Результат CKR

Dispose() публичный Метод

Disposes object
public Dispose ( ) : void
Результат void

Dispose() защищенный Метод

Disposes object
protected Dispose ( bool disposing ) : void
disposing bool Flag indicating whether managed resources should be disposed
Результат void

Pkcs11() публичный Метод

Loads PCKS#11 library
public Pkcs11 ( string libraryPath ) : System
libraryPath string Library name or path
Результат System

Pkcs11() публичный Метод

Loads PCKS#11 library
public Pkcs11 ( string libraryPath, bool useGetFunctionList ) : System
libraryPath string Library name or path
useGetFunctionList bool Flag indicating whether cryptoki function pointers should be acquired via C_GetFunctionList (true) or via platform native function (false)
Результат System