Advertisement
Guest User

Untitled

a guest
Jul 27th, 2017
52
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.05 KB | None | 0 0
  1. CspParameters cspparams = new CspParams { Flags = CspProviderFlags.CreateEphemeralKey };
  2. using (RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(cspparams))
  3. { // Both shown here but only one used depending on operation
  4. // For the signing RSA use this:
  5. rsa.ImportCspBlob(pvkBlob);
  6. // for the verifying RSA use this:
  7. rsa.ImportCspBlob(pukBlob);
  8.  
  9. byte[] modelBlob = GetModelBlob(model);
  10. HashAlgorithm halgo = HashAlgorithm.Create("SHA1");
  11.  
  12. // For signing use this:
  13. model.Signature = null; // not used to compute sig
  14. DataContractSerializer serializer = new DataContractSerializer(model.GetType());
  15. using (MemoryStream memoryStream = new MemoryStream())
  16. {
  17. serializer.WriteObject(memoryStream, model);
  18. byte[] toSaveSig = rsa.SignData(memoryStream, halgo);
  19. model.Signature = toSaveSig;
  20. }
  21.  
  22. // For verifying use this:
  23. byte[] retrievedSig = model.Signature;
  24. model.Signature = null; // not used to compute sig
  25. bool verified = rsa.VerifyData(modelBlob, halgo, retrievedSig);
  26. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement