public object GetSignedHash(string access_token, InputAuthorizeSignHash inputAuthorizeSignHash) { RestRequest request = new RestRequest("sign", Method.POST); request.AddParameter("Authorization", "Bearer " + access_token, ParameterType.HttpHeader); JsonSerializer serializer = new JsonSerializer(); var postData = serializer.Serialize(inputAuthorizeSignHash); request.AddJsonBody(postData); IRestResponse response = Execute(request); var data = serializer.Deserialize <object>(response); return(data); }
private void PAdESHandler_OnRemoteSign(object Sender, byte[] Hash, ref byte[] SignedHash) { string[] hashToSign = new[] { Convert.ToBase64String(Hash) }; JsonSerializer serializer = new JsonSerializer(); ErrorLogger errorLogger = new ErrorLogger(); AuthorizeSignClient authorizeSignClient = new AuthorizeSignClient(serializer, errorLogger, baseURL); InputAuthorizeSignHash inputAuthorizeSignHash = new InputAuthorizeSignHash() { credentialsID = credentialsID, hash = hashToSign, hashAlgo = hashAlgo, signAlgo = signAlgo, numSignatures = 1, OTP = otp, PIN = pin }; var outputAuthSign = serializer.Serialize(authorizeSignClient.GetSignedHash(access_token, inputAuthorizeSignHash)); var signature = serializer.Deserialize <OutputSignaturesSignHash>(outputAuthSign); SignedHash = Encoding.UTF8.GetBytes(signature.signatures.FirstOrDefault()); }
public object Sign(InputAuthorizeSignHash inputAuthSign) { InputCredentialsAuthorize inputCredentialsAuthorize = new InputCredentialsAuthorize() { credentialID = inputAuthSign.credentialsID, numSignatures = inputAuthSign.numSignatures, hash = inputAuthSign.hash, PIN = inputAuthSign.PIN, OTP = inputAuthSign.OTP, clientData = inputAuthSign.clientData, description = inputAuthSign.description }; JsonSerializer serializer = new JsonSerializer(); ErrorLogger errorLogger = new ErrorLogger(); string baseURL = _configuration.GetSection("Transsped").GetSection("BaseURL").Value; CredentialsAuthorizeClient credentialsAuthorizeClient = new CredentialsAuthorizeClient(serializer, errorLogger, baseURL); Microsoft.Extensions.Primitives.StringValues value; string access_token = ""; if (Request.Headers.TryGetValue("Authorization", out value)) { access_token = value.ToString().Replace("Bearer ", ""); } else { OutputError error = new OutputError() { error = "invalid_access_token", error_description = "Invalid access_token" }; return(serializer.Serialize(error)); } 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() { clientData = inputAuthSign.clientData, credentialID = inputAuthSign.credentialsID, hash = inputAuthSign.hash, hashAlgo = inputAuthSign.hashAlgo, SAD = outCredAuth.SAD, signAlgo = inputAuthSign.signAlgo, signAlgoParams = inputAuthSign.signAlgoParams }; SignHashClient signHashClient = new SignHashClient(serializer, errorLogger, baseURL); //string signResponse = serializer.Serialize(signHashClient.GetSignedHash(access_token, inputSignatures)); return(signHashClient.GetSignedHash(access_token, inputSignatures)); } else { OutputError error = new OutputError() { error = "invalid_access_token", error_description = "Invalid access_token" }; return(error); } }