public bool VerifyItem(UniversalRecordItem item) { var rsa = LoadRSAKey(); byte[] data_bytes; byte[] signature_bytes; var tmp = item.signature; try { // This is why this class has been sealed. So we know what is expected by setting signature to a blank string. item.signature = ""; data_bytes = Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(item)); signature_bytes = Convert.FromBase64String(tmp); } finally { item.signature = tmp; } return(rsa.VerifyData(data_bytes, signature_bytes, HashAlgorithmName.SHA512, RSASignaturePadding.Pkcs1)); }
public static async Task <Responses.UniversalPushInfoResponse> PushInfo(string universal_url, UniversalRecordItem item) { var msg = JsonConvert.SerializeObject(item); return(JsonConvert.DeserializeObject <Responses.UniversalPushInfoResponse>( await TransactionAsync( $"{universal_url}/v1/pushinfo", msg ))); }