Ich versuche, Pdf-Dokumente unter Verwendung Pkcs11Interop. Net-Bibliothek zu unterzeichnen. Ich brauche ECDSA-Verschlüsselung Algorithmus mit SHA256 Hash-Algorithmus. Und ich verwende SoftHSM 2.2.0 zum Speichern privater Schlüssel.Signing PDF von Pkcs11Interop für CKM_ECDSA_SHA256 mit SoftHSM 2.2.0 (ECDSA mit SHA256) C# .net
Ich fand eine CKM enum, CKM_ECDSA_SHA256, die ich beim Erstellen eines Objekts der Klassenmechanismus für den Aufruf der Sign-Methode der Sitzung übergeben.
Ich bekomme die Antwort von der "Signdata" -Methode, jedoch beim Öffnen der Pdf-Dateien erzeugt nach der Unterzeichnung geben Sie einen Fehler "Signatur ungültig". Hier ist das Code-Snippet für den Signdata-Methodenaufruf. Ich bekomme keinen Fehler oder eine Ausnahme im Code, aber die pdf, wie ich erwähnt habe, zeigen die Unterschrift ungültig.
private Pkcs11 _pkcs11;
private Slot _slot;
private Session _session;
try
{
_pkcs11 = new Pkcs11(hsmCryptoApi, true);
}
catch (Pkcs11Exception ex)
{
if (ex.RV == CKR.CKR_CANT_LOCK)
_pkcs11 = new Pkcs11(hsmCryptoApi, false);
else
throw ex;
}
_slot = FindSlot(_pkcs11, _certificateInformation.TokenLabel);
_session = _slot.OpenSession(true);
using (Mechanism mechanism = new Mechanism(CKM.CKM_ECDSA_SHA256))
{
_session.Login(CKU.CKU_USER, passowrd);
byte[] signedHash = _session.Sign(mechanism, GetPrivateKeyHandle(), message);
_session.Logout();
return signedHash;
}
private ObjectHandle GetPrivateKeyHandle()
{
string keyLabel = _certificateInformation.KeyLabel;
List<ObjectAttribute> searchTemplate = new List<ObjectAttribute>();
searchTemplate.Add(new ObjectAttribute(CKA.CKA_CLASS, CKO.CKO_PRIVATE_KEY));
searchTemplate.Add(new ObjectAttribute(CKA.CKA_LABEL, keyLabel));
List<ObjectHandle> foundObjects = _session.FindAllObjects(searchTemplate);
return foundObjects[0];
}
- Bitte sagen Sie mir, wenn SoftHSM 2.2.0 ECDSA_P256 unterstützt mit SHA256 oder nicht ??
- Wenn nicht, gibt es eine Möglichkeit, die Unterstützung zu aktivieren?
- Wenn es unterstützt, bitte helfen Sie mir, wie das zu beheben?
- Es sieht aus wie es mir will ECDSA_Param passieren, hat jemand einen Code-Schnipsel für die ECDSA_Param
Ich sehe keine offensichtliche Problem im Code haben Sie auf dem Laufenden, so ist meine Vermutung, dass Ihr Problem könnte durch einen anderen Code in Ihre Lösung wie PDF-Verarbeitung verursacht werden , CMS Struktur Gebäude etc. – jariq