private void PAdESHandler_OnRemoteSign(object Sender, byte[] Hash, ref byte[] SignedHash) { //aici trebuie sa fac requestul catre transsped si sa intor ref byte[] SignedHash //pentru semnare - //send otp //credentials authorize - cred id, otp, pin, hash //signHash //credentials authorize string[] hashToSign = new[] { Convert.ToBase64String(Hash) }; JsonSerializer serializer = new JsonSerializer(); ErrorLogger errorLogger = new ErrorLogger(); string baseURL = "https://msign-test.transsped.ro/csc/v0/"; CredentialsAuthorizeClient credAuth = new CredentialsAuthorizeClient(serializer, errorLogger, baseURL); InputCredentialsAuthorize inputCredAuth = new InputCredentialsAuthorize() { credentialID = "863971CBC7BF63D49C9F14809FD5A1142B75E9AB", hash = hashToSign, OTP = OTP, PIN = PIN, numSignatures = 1 }; string outputCredAuth = serializer.Serialize(credAuth.GetCredentialsAuthorize(Access_token, inputCredAuth)); OutputCredentialsAuthorize authorize = serializer.Deserialize <OutputCredentialsAuthorize>(outputCredAuth); //sign hash InputSignaturesSignHash inputSignHash = new InputSignaturesSignHash() { credentialID = "863971CBC7BF63D49C9F14809FD5A1142B75E9AB", hash = hashToSign, SAD = authorize.SAD, hashAlgo = "2.16.840.1.101.3.4.2.1", signAlgo = "1.2.840.113549.1.1.11" }; SignHashClient signHashClient = new SignHashClient(serializer, errorLogger, baseURL); string outputSignature = serializer.Serialize(signHashClient.GetSignedHash(Access_token, inputSignHash)); OutputSignaturesSignHash signature = serializer.Deserialize <OutputSignaturesSignHash>(outputSignature); SignedHash = Encoding.UTF8.GetBytes(signature.signatures.FirstOrDefault()); }
private void CAdES_Handler(object Sender, byte[] Hash, ref byte[] SignedHash) { string[] hashToSign = new[] { Convert.ToBase64String(Hash) }; JsonSerializer serializer = new JsonSerializer(); ErrorLogger errorLogger = new ErrorLogger(); InputCredentialsAuthorize inputCredentialsAuthorize = new InputCredentialsAuthorize() { credentialID = credentialsID, hash = hashToSign, numSignatures = 1, OTP = otp, PIN = pin }; CredentialsAuthorizeClient credentialsAuthorizeClient = new CredentialsAuthorizeClient(serializer, errorLogger, baseURL); string response = serializer.Serialize(credentialsAuthorizeClient.GetCredentialsAuthorize(access_token, inputCredentialsAuthorize)); if (response != null && !response.Contains("error")) { OutputCredentialsAuthorize outCredAuth = serializer.Deserialize <OutputCredentialsAuthorize>(response); InputSignaturesSignHash inputSignatures = new InputSignaturesSignHash() { credentialID = credentialsID, hash = hashToSign, hashAlgo = hashAlgo, SAD = outCredAuth.SAD, signAlgo = signAlgo }; SignHashClient signHashClient = new SignHashClient(serializer, errorLogger, baseURL); string signResponse = serializer.Serialize(signHashClient.GetSignedHash(access_token, inputSignatures)); if (!signResponse.Contains("error")) { var signature = serializer.Deserialize <OutputSignaturesSignHash>(signResponse); var signatureResult = signature.signatures.FirstOrDefault(); SignedHash = Encoding.UTF8.GetBytes(signatureResult); } } }