/
DecryptSignatureBiodata
DecryptSignatureBiodata
Declaration
Delphi
function DecryptSignatureBiodata(RandomKey:AnsiString; EncryptedBiodata: AnsisTring; var OutLen : integer) :pointer;
C/C++
SOPAD_API VOID* SOPAD_DecryptSignatureBiodata(char *RandomKey, char *EncryptedBiodata, int *OutLen) ;
ActiveX
HRESULT _stdcall DecryptSignatureBiodata([in] BSTR RandomKey, [in] BSTR EncryptedBiodata, [out, retval] BSTR* Result);
Description
Decrypt the biometric data with the decrypted AESKey (see DecryptSignatureAESKey)
This function can only by used with biometric pads, as the standard pads have a secure notarykey.
Arguments
string RandomKey, encoded as hex-string
string EncryptedBiodata,
Return value
returns the decrypted Biodata as the stepover Biodata-format
Sample
C# Sample to collect signature raw data and how to decrypt them
private string GetFileContentAsString(String FileName, bool asHexString) { string result = ""; if (!asHexString) { result = File.ReadAllText(FileName); } else { byte[] fileBytes = File.ReadAllBytes(FileName); result = BitConverter.ToString(fileBytes); result = result.Replace("-", ""); } return result; } // function to collect all signature data private void getSignature() { SigDev.startCapture(cert, true, true, true, true, ref padSetting); // wait for 2 sec for signing Thread.Sleep(2000); // Save SignImage System.IO.File.WriteAllBytes("signature.bmp", (byte[])SigDev.ReadHighResBitmap(1)); // Collect encrypted Biodata string biodata = ""; SigDev.getBiodataString(ref biodata); System.IO.File.WriteAllText("biodata.bin", biodata); // some arbitrary preliminary document hash, should be generated of the signing content in that case its a dummy value byte[] prelimHash = {0,0,0,0,1,0,0,0, 1,0,0,0,0,0,0,0, 0,1,0,1,0,0,0,0, 0,0,0,0,1,0,0,0}; // save preliminary document hash (better way is not to save it and recreate it from the signed data). System.IO.File.WriteAllBytes("prelimHash.bin", prelimHash); // Send preliminary document hash to Device SigDev.SetPreliminaryDocumentHash(prelimHash); // Collect and Save EncryptedAES Key from Device System.IO.File.WriteAllBytes("encryptedAesKey.bin", (byte[])SigDev.GetEncryptedAesKey()); // Stop Signmode, Pad will switch to Standby again SigDev.stopCapture(0); } // function to decrypt biodata with raw data private void DecryptBiometricdata() { string notarykey = "private4096.txt"; string biodata = GetFileContentAsString("biodata.bin", false); string aeskey = GetFileContentAsString("encryptedAesKey.bin", true); string dochash = GetFileContentAsString("prelimHash.bin", true); string randomkey = SigDev.DecryptSignatureAESKey(aeskey, dochash, notarykey); string decryptedBiodata = SigDev.DecryptSignatureBiodata((randomkey), biodata); Console.WriteLine("btnDecryptBiodataClick done."); Console.WriteLine("btnDecryptBiodataClick randomkey=" + (randomkey)); Console.WriteLine("btnDecryptBiodataClick decryptedBiodata=" + decryptedBiodata); }
, multiple selections available,
Related content
DecryptSignatureAESKey
DecryptSignatureAESKey
More like this
AddSignature
AddSignature
Read with this
LoadBioData
LoadBioData
More like this
SetDriverBin
SetDriverBin
More like this
getBioData
getBioData
More like this
SOBioDecryptor (DLL interface)
SOBioDecryptor (DLL interface)
More like this