This snippet shows how to list all public and private keys:
// Searchs for private key objects
CryptokiCollection templatePri = new CryptokiCollection();
templatePri .Add(new ObjectAttribute(ObjectAttribute.CKA_CLASS, CryptokiObject.CKO_PRIVATE_KEY));
// Launches the search specifying the template just created
CryptokiCollection priKeyObjects = session.Objects.Find(templatePri , 100);
// prints the label of all keys
for(int i = 0; i < priKeyObjects .count(); i++)
{
RSAPrivateKey privateKey = (RSAPrivateKey)priKeyObjects i;
Console.WriteLine("Private Key: " + privateKey.Label);
}
// Searchs for public key objects
CryptokiCollection templatePub = new CryptokiCollection();
templatePub .Add(new ObjectAttribute(ObjectAttribute.CKA_CLASS, CryptokiObject.CKO_PUBLIC_KEY));
// Launches the search specifying the template just created
CryptokiCollection pubKeyObjects = session.Objects.Find(templatePub , 100);
// prints the label of all keys
for(int i = 0; i < pubKeyObjects .count(); i++)
{
RSAPublicKey publicKey = (RSAPublicKey )pubKeyObjectsi;
Console.WriteLine("Public Key: " + publicKey.Label);
}