public static void ReadWriteDsa2048EncryptedPkcs8() { ReadBase64EncryptedPkcs8( @" MIICkTAbBgkqhkiG9w0BBQMwDgQIiFvwvRtsR00CAggABIICcLdrPIpSA2oPwA7S /SBV43oICErpXe3XIjXwWTCRD+xgzQ1IUxJRHau8kIqz+mYwmN4tG9QZp/kc1HYx 1b72PtNc/NaduA6eT3DNZO7SslpnXkXKdXhMRsyzwawI4QfPlTZsL7bUgn4/O/GQ yN1gHns7AHk6HOO3fLujSSqrosLQOvHkgvsxLJhcBhGTKUZqwA6SFwvWsYKh7ML2 Rwx336Nlzf7wpd49l8meJyZReqJ8Fg4kIhhcJTDAhaxWEdIw1dolshz1FSyZIb75 dhNVrpHtp+fQbWZpMRLGB+6qmWHjfzrSdSRda898P9oLgXpKffXDuFFcW+opW3uV QZ2kM2Xx6NzcvdP4Bp3NKQmaW6inaES/IJvOasJd1KLTKb5Q16kq/0hrRw2fhBoc YxXkO34answHx3Oapx3tJ40fwxi0RjPdEY+qNpMlHLiZrV6/dK6jfo3i9MT7xbQE XLVGx9Yqp2eHNLPKnHuEaeDmOkYhsjVgrVGhDydqrN+9R6K6LOgU2Gxo7M/vhQiL TwE5xKbUF6u82nyjma7DR7P6YDDY/RNfGRBusiMn7xlJs7ssG3ZTa0BBwlh6C4Iw ak2nknIOVBrzyh+FJhcKRyExSDUt39uz0h+HH2MHNBs3gJv/xmURDRmlhwcqF7ZA EDVKgNkAxxCnPVjTUalttxCxTv7FC/vxfN7ulB2uKzicegsf6t/nS6i2dpJjUYDF 8SU3qholnkPCi+bN+pNLtHiTo6o/7dhUf+/Y0DclLakVTduuOBc0v5arTtOB1Qlc /NbPGH1ELzGP6HO8JzNYWabsAuY4AYoXuaTa7F0ygo6t9FP90w==", "Chicken Cannon", new PbeParameters( PbeEncryptionAlgorithm.TripleDes3KeyPkcs12, HashAlgorithmName.SHA1, 0x0202), DSATestData.GetDSA2048Params()); }
public static void Import_2048() { using (DSA dsa = DSAFactory.Create()) { dsa.ImportParameters(DSATestData.GetDSA2048Params()); Assert.Equal(2048, dsa.KeySize); } }
public static void Sign2048WithSha1() { byte[] data = { 1, 2, 3, 4 }; using (DSA dsa = DSAFactory.Create()) { dsa.ImportParameters(DSATestData.GetDSA2048Params()); byte[] signature = dsa.SignData(data, HashAlgorithmName.SHA1); Assert.True(dsa.VerifyData(data, signature, HashAlgorithmName.SHA1)); } }
public static void VerifyKnown_2048_SHA256() { byte[] signature = { 0x92, 0x06, 0x0B, 0x57, 0xF1, 0x35, 0x20, 0x28, 0xC6, 0x54, 0x4A, 0x0F, 0x08, 0x48, 0x5F, 0x5D, 0x55, 0xA8, 0x42, 0xFB, 0x05, 0xA7, 0x3E, 0x32, 0xCA, 0xC6, 0x91, 0x77, 0x70, 0x0A, 0x68, 0x44, 0x60, 0x63, 0xF7, 0xE7, 0x96, 0x54, 0x8F, 0x4A, 0x6D, 0x47, 0x10, 0xEE, 0x9A, 0x9F, 0xC2, 0xC8, 0xDD, 0x74, 0xAE, 0x1A, 0x68, 0xF3, 0xA9, 0xB8, 0x62, 0x14, 0x50, 0xA3, 0x01, 0x1D, 0x2A, 0x22, }; using (DSA dsa = DSAFactory.Create()) { dsa.ImportParameters(DSATestData.GetDSA2048Params()); Assert.True(dsa.VerifyData(DSATestData.HelloBytes, signature, HashAlgorithmName.SHA256)); Assert.False(dsa.VerifyData(DSATestData.HelloBytes, signature, HashAlgorithmName.SHA384)); Assert.False(dsa.VerifyData(DSATestData.HelloBytes, signature, HashAlgorithmName.SHA512)); } }
public static void VerifyKnown_2048_SHA512() { byte[] signature = { 0x6F, 0x44, 0x68, 0x1F, 0x74, 0xF7, 0x90, 0x2F, 0x38, 0x43, 0x9B, 0x00, 0x15, 0xDA, 0xF6, 0x8F, 0x97, 0xB4, 0x4A, 0x52, 0xF7, 0xC1, 0xEC, 0x21, 0xE2, 0x44, 0x48, 0x71, 0x0F, 0xEC, 0x5E, 0xB3, 0xA1, 0xCB, 0xE4, 0x42, 0xC8, 0x1E, 0xCD, 0x3C, 0xA8, 0x15, 0x51, 0xDE, 0x0C, 0xCC, 0xAE, 0x4D, 0xEB, 0x2A, 0xE9, 0x13, 0xBB, 0x7F, 0x3C, 0xFB, 0x69, 0x8A, 0x8E, 0x0F, 0x80, 0x87, 0x2E, 0xA6, }; using (DSA dsa = DSAFactory.Create()) { dsa.ImportParameters(DSATestData.GetDSA2048Params()); Assert.True(dsa.VerifyData(DSATestData.HelloBytes, signature, HashAlgorithmName.SHA512)); Assert.False(dsa.VerifyData(DSATestData.HelloBytes, signature, HashAlgorithmName.SHA256)); Assert.False(dsa.VerifyData(DSATestData.HelloBytes, signature, HashAlgorithmName.SHA384)); } }
public static void VerifyKnown_2048_SHA384() { byte[] signature = { 0x56, 0xBA, 0x70, 0x48, 0x18, 0xBA, 0xE3, 0x43, 0xF0, 0x7F, 0x25, 0xFE, 0xEA, 0xF1, 0xDB, 0x49, 0x37, 0x15, 0xD3, 0xD0, 0x5B, 0x9D, 0x57, 0x19, 0x73, 0x44, 0xDA, 0x70, 0x8D, 0x44, 0x7D, 0xBA, 0x83, 0xDB, 0x8E, 0x8F, 0x39, 0x0F, 0x83, 0xD5, 0x0B, 0x73, 0x81, 0x77, 0x3D, 0x9B, 0x8D, 0xA4, 0xAD, 0x94, 0x3C, 0xAB, 0x7A, 0x6C, 0x81, 0x48, 0x2F, 0xCF, 0x50, 0xE3, 0x34, 0x0B, 0xEC, 0xF0, }; using (DSA dsa = DSAFactory.Create()) { dsa.ImportParameters(DSATestData.GetDSA2048Params()); Assert.True(dsa.VerifyData(DSATestData.HelloBytes, signature, HashAlgorithmName.SHA384)); Assert.False(dsa.VerifyData(DSATestData.HelloBytes, signature, HashAlgorithmName.SHA256)); Assert.False(dsa.VerifyData(DSATestData.HelloBytes, signature, HashAlgorithmName.SHA512)); } }
public static void Verify2048WithSha1() { byte[] data = { 1, 2, 3, 4 }; byte[] signature = ( "28DC05B452C8FC0E0BFE9DA067D11147D31B1F3C63E5CF95046A812417C64844868D04D3A1D23" + "13E5DD07DE757B3A836E70A1C85DDC90CB62DE2E44746C760F2").HexToByteArray(); using (DSA dsa = DSAFactory.Create()) { dsa.ImportParameters(DSATestData.GetDSA2048Params()); Assert.True(dsa.VerifyData(data, signature, HashAlgorithmName.SHA1), "Untampered data verifies"); data[0] ^= 0xFF; Assert.False(dsa.VerifyData(data, signature, HashAlgorithmName.SHA1), "Tampered data verifies"); data[0] ^= 0xFF; signature[signature.Length - 1] ^= 0xFF; Assert.False(dsa.VerifyData(data, signature, HashAlgorithmName.SHA1), "Tampered signature verifies"); } }
public static void ReadWriteDsa2048SubjectPublicKeyInfo() { ReadWriteBase64SubjectPublicKeyInfo( @" MIIDRjCCAjkGByqGSM44BAEwggIsAoIBAQCvj7mysUfJbzkjYGOb2qZUT/LNCGtg SjMk9IVZXwLOrzLS1J8t062fU4TdCdAxgtuPCqBs4KD8ojZqWwMb0OL615e63IdK DGeBUpwB4NaXBLQ983GuSps92B6wP12uKDeAESVoZjN7c6gk9+isphmBp8Z2STY9 LX0SzCMFMI0IS+xozDsbPvV3BTpeI0Sfujw+tvjNjqafEWs3SL0jf5f09+kRxBw5 TW99LVO3Z2GPDe1I571/MMZWiUgmSlTADTWKdumCbteRxrbL+MKcJFFzsdjSGUOO WTc851VO9Jx4QKjFXOLl4sM8EKrY2Q8ox8su8UrV7YxOaZK0Hs7GUoj1AiEAyTqy KSNygpl/I1QaOZu/dc7NML4L6VksBwQ+0wIh6ssCggEARKfSLeuinOGdZ40twR8R i6oQ476pTeKcPsNsEKtNaIAEobf0OH/BzJYT5oUf7bvVRTGe3lRLlOT66cEGnnc0 +eavyKC4QGls3/4obhrxrW45Yp0MjGAWrGJfEAus9f90sjJcnZmm2LAxCyaPY+Nf XRyNpmP5SrqQJEzsz5qM5dtUebAG+RMeXqeCIqMuKhA8H+8WkpsVbjIwyVQpXNo+ X5H3G1Z/o7d0uELxKM0NND1UaNuQc0pngDXmXmohzHMB9PU+a2ZxioP/KFpv3onK WuHRuWM6JaNKkm+dKAj5v3ldk2eH/0xyhrx/xKgq+psGyRJRCakjuvPjd1XxV0uv tQOCAQUAAoIBAAEb2FmGosQTFf8BxVSkXlqcRbOOvcwmYLbReIlgToAKb96OAXzt N5P0pvuvu3YT/re6h4QavVmTXRiFiTnACm5GGbZWJHWVXW1yshNL7PWrNBGPYNhL H/JodT8YjoYSVRMthMoKq2gbhVGHM5Txjg2u9rX5V37HyiqmMoG1Oa9YlCg+P7bc xVN9ksi/58ByOsIS7vO3cY01w/3Zn3rgkSzHxHUhpW+lEb4xcS2XmuZ/F6e8xOWB DqnKE43u09eCOe7vI5p3KULSPCgQwpciGVJWRhJ/nEuBYSwSrtwtyR6BFTsKIHwf vAB5Wz646GeWztKawSR/9xIqHq8IECV1FXI=", DSATestData.GetDSA2048Params()); }
public static void SignAndVerifyDataExplicit2048() { SignAndVerify(DSATestData.HelloBytes, "SHA256", DSATestData.GetDSA2048Params(), 64); }