public static string FindSigningCertificateId(PkcsSession session, string certificateLabel) { var certificateHandle = session.Session .FindAllObjects(new List <ObjectAttribute> { new ObjectAttribute(CKA.CKA_LABEL, certificateLabel) }) .FirstOrDefault(); var certificateObject = session.Session.GetAttributeValue(certificateHandle, new List <CKA> { CKA.CKA_ID }).First(); var idInDecimal = certificateObject.GetValueAsByteArray()[0]; return(idInDecimal.ToString("X")); }
public static X509Certificate2 FindSigningCertificate(PkcsSession session, string certificateLabel) { var certificateHandle = session.Session .FindAllObjects(new List <ObjectAttribute> { new ObjectAttribute(CKA.CKA_LABEL, certificateLabel) }) .FirstOrDefault(); if (certificateHandle == null) { throw new InvalidOperationException("Certificate with specified label wasn't found: " + certificateLabel); } var certificateObject = session.Session.GetAttributeValue(certificateHandle, new List <CKA> { CKA.CKA_VALUE }).First(); var rawCertificate = certificateObject.GetValueAsByteArray(); return(ParseCertificate(rawCertificate)); }