RsaUtilityTests.cs 1.2 KB

123456789101112131415161718192021222324252627282930313233
  1. using PCC.App.Security;
  2. using System.Diagnostics;
  3. using System.Security.Cryptography;
  4. using System.Text;
  5. namespace PCC.Tests
  6. {
  7. internal static class RsaUtilityTests
  8. {
  9. [Conditional("DEBUG")]
  10. public static void CoverTest()
  11. {
  12. var (pub1, pri1) = RsaUtility.GeneratePKCS1(4096); // sender
  13. var (pub2, pri2) = RsaUtility.GeneratePKCS1(4096); // rec
  14. var rsaPub1 = RsaUtility.FromPKCS1PublicKey(pub1);
  15. var rsaPri1 = RsaUtility.FromPKCS1PrivateKey(pri1);
  16. var rsaPub2 = RsaUtility.FromPKCS1PublicKey(pub2);
  17. var rsaPri2 = RsaUtility.FromPKCS1PrivateKey(pri2);
  18. var rawText = RandomNumberGenerator.GetString(new[] { 'C', 'D' }, RandomNumberGenerator.GetInt32(10)) + "Brrr汉字Brrr:" + RandomNumberGenerator.GetString(new[] { 'A', 'B' }, 1024);
  19. var rawBytes = Encoding.UTF8.GetBytes(rawText);
  20. var encBytes = RsaUtility.EncryptAndSignature(rsaPub2, rawBytes, rsaPri1);
  21. var decBytes = RsaUtility.DecryptAndVerifySignature(rsaPri2, encBytes, rsaPub1);
  22. var decText = Encoding.UTF8.GetString(decBytes);
  23. var success = rawText == decText;
  24. }
  25. }
  26. }