public void MobileReactNativeRsaNativeVerificationTest() { var bouncyCryptoHelper = new BouncyCryptoHelper(4096, 512); var mobilePublicKey = "-----BEGIN RSA PUBLIC KEY-----\n" + "MIICCgKCAgEAvFv4OwYYDMWUHR0Lijy+9f26i8ULVG5vYkk7NRL2N0aNec8qO9YL\n" + "LtF7+WS2lXuY8jHDdL/k7VqdQPtBWK50JsOjbQX3jE7HihW1vu6QfoF1GCFBDN9U\n" + "rwiBnN3ii+LpUSY1K1xuSmBrGPohK3XzUU58HA7gPFwuC5o3pSYS8NxIW6ThDQwo\n" + "zeKygjVBIZ3CvIG2rxFrhOLrjx1xcKRSdrly8JHtMgbQ7kYMTtK6Eqqa3EIGhuyM\n" + "oFDfUpImoq5bsa+bOSs1NSfFKBJUXpeH790K+DI1TQm4Fr92fuq6P5nl0F/BTAgD\n" + "2hVewfH7N/DctVB6sGgAgwf0rTZN4aiPe2B8q0Uaes4wLXBaY5YxRJ5Ob6jb1+ba\n" + "taYBG0nxwkMxZz/c3xF5Tcfo4iGQBcXhI1i+VwC+G4NOe0L2vtxlmcnAZ4gQVxhn\n" + "W+j6c36cZ8RIRL5vs3l/UPrdMoIsOLKg+AlI3CM4hjJZDhW+oi+YFeptPoAuz3Wf\n" + "I6MyCVtWO2Wq626CUL/NNw38HAsNKEmzqgcgL47iATbapN1BEPNqo0A/I9oPGfVb\n" + "ax675QUDMieuEv9D2YU1BELovnE/4pli2svYyJDUKkPtIYbOrxKdxvp2tymQkujr\n" + "RYoHDJSMtLD13BBmI4iEKUeFGsf4reuSKwU7AlgXllZ879X5ZK5Yw5kCAwEAAQ==\n" + "-----END RSA PUBLIC KEY-----\n"; var mobileMessage = "The message was encrypted by RSA only!!! With spec symbol ™"; var mobileSignature = "aDxQ11bzIOc4WsUnwxVUpdh3OoLex2h6ICVBL01Ine75URIoqXRqosD5PE0Z49IZkw4+76fLIO+3" + "9UA+9VoVTZ6vZ7EIgh2hDwJ1TFbM4ecCQxEkH7V+IczWLB3q7oPSM8+R8UxfX8Xkkz+HwwsDGEiQ" + "pKcv6lDFhK7NbvWNPfpV5lP3nNi2r4P+/MTi98mPAcPu3411Fa5k9rQHLsFXRovzFUaKR/KThNn2" + "NRMpfHy4A1EjqTuX4o3rqZxSe3CIlzA3W2P0+FA/w1hpM6tu7VthxbYYCu4v0GrnrdgF8vhH7JC4" + "a/pxTLRBFdPRnicjEUiQDUYAzpqWgMeuSP52w7sw27DjC+eNj26kGLNY0W3N8h5AhFWe3BF95leE" + "ZrRHWLlt65V8SLBc1WA0IJKby9HBJSOHyk7oNNrD+ue5nJ8rq3UIR3NWOraaDo4W3xFvJb+j4ghh" + "i/9ZD2bBb56119Doo4mQog5ouYuwVVaY54ya/WY6Uo6tog4t0gigFmXAYV5YkKi+tvproqScGeX5" + "yfekWF3UMMmI5gas1fPNIIUuCRHb8W0ESfnSsUVzBS3M01fwkg2sSsZfCJuf026gl9LlleudqKHh" + "aN7NPajLnJh57rZTLOLuK3CWtwn5/sN2Dw7mgxB98N5h0uyFiMUd3a6HR6iNvKBHGB/eXow4KbU="; Assert.True(bouncyCryptoHelper.VerifyMessage(mobileMessage, mobileSignature, mobilePublicKey)); }
public void MobileReactNativeBiometricsVerificationTest() { var bouncyCryptoHelper = new BouncyCryptoHelper(4096, 256); var mobilePublicKey = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0/WxH1V1ZBbFfLIjJY4jDvvI0cXWpaJT4B/EEd+A1cTTy4R2nn9LnznKXJTSrQABAWcMLyvqDI9aFHXsAx5y6mVwf8zXuHEd+lkIV5/YCDrtpcNEeQIFbd8OrCP/zPEXnKpZ9Zcjs2baOsHhwX4g+39qJDMnUMn/fZGz4zoM2JC81TsF3AcVFnqIKcnF81gGupo5eOfYevTAEf1CAADdEmwYypPA6sHp+ktTte4bcz62HEXaGBAWda2wVW6CpIXjMnzboXLHKIDTIPUd383NNEbep+n7RfEYOH+iMRSM6KaRiJW+WAuHTnSJ+eWYxZIu96D3VkSKUF1hl1MF4UDOawIDAQAB"; var mobileMessage = "The message was encrypted by biometric data!!! With spec symbol ™"; var mobileSignature = "P2TGa0ZhrZQozzGl2rN5zFWlS/6/46rIcphbYUUON1SRzUoYDK1ODmnEc5nT0kRw+4YbxMY1FFlqWuTVCwvuemacjoRZejGUb4DP5eQplzBVn/DB45/zZlmFEvqTl5O860AymEHUREjZtbBOfKQiQJFuhYRpbTvoSAlR2aQWUM++A4MGBL+BzFbI7PBYR9abwT7b8m1tVqqgGbrnk4RX5mWu1DczR1rNfIVnn9HshumQmE9ZQV+VIX8W4ZB8lHXqmu8XzTuZEwlaakEeJSbX6J3qHVqd28uxHTIccKWl9LfgmCbi/AOH01pDYEwAwXLKXnE5fejtBnOClLYKt+hdqw=="; Assert.True(bouncyCryptoHelper.VerifyMessage(mobileMessage, mobileSignature, mobilePublicKey)); }
public void ServerRsaVerificationTest() { var bouncyCryptoHelper = new BouncyCryptoHelper(); var keys = bouncyCryptoHelper.GenerateKeyPair(); var input = "Example message for decryption/encryption! With spec symbol ™"; var publicKey = keys.Item1; var privateKey = keys.Item2; var encryptedMessage = bouncyCryptoHelper.SignMessage(input, privateKey); Assert.True(bouncyCryptoHelper.VerifyMessage(input, encryptedMessage, publicKey)); }
public void ServerRsaEncryptionDecryptionTest() { var bouncyCryptoHelper = new BouncyCryptoHelper(); var keys = bouncyCryptoHelper.GenerateKeyPair(); var input = "Example message for decryption/encryption! With spec symbol ™"; var publicKey = keys.Item1; var privateKey = keys.Item2; var encryptedMessage = bouncyCryptoHelper.EncryptMessage(input, publicKey); var output = bouncyCryptoHelper.DecryptMessage(encryptedMessage, privateKey); Assert.Equal(input, output); }
public void MobileReactNativeRsaNativeEncryptionDecryptionTest() { var bouncyCryptoHelper = new BouncyCryptoHelper(); var input = "Example message for decryption/encryption! With spec symbol ™"; var mobilePublicKey = "-----BEGIN RSA PUBLIC KEY-----\n" + "MIICCgKCAgEApx7x891JbXsJETEQNqzy67Wu3avqK5KDVTwepWrMa+/9tRMeHgka\n" + "hYKlFmf7kX3BHXiskWAsyB3y83JernX+jl3sbM9WHwi9AVbjJMnVrP2gCeY/OO33\n" + "waKg+D9xQzEdvGa5p9jZ2pMWNV0Bco3lHMM35RhyBGZACzolflUSJfNbqADIEsgz\n" + "2pjuz2ulz1zEvzkQgUAnG+uQUayX9W+4icmTnrNh3rj/+UfF7N82fegkK+oNy83A\n" + "fl3Os5kgIa3i06uJwFWFb+Tp4HX2vu01e9Kseofzo9nyYX5kDvyhTQl7t/2js/ZX\n" + "OJ3amFUQldKeIWzU1ZwTD3IDBVDwtK//Bx3eRtPUq0v53liCVbfhcJ6YZxpROxcY\n" + "LFTejtjZvdbq6bI2GYAFiiFSh066PFrFQHfgMv0/sQZ56M7JJWFgV9tQbkDdYQ7Y\n" + "uadjhQck040nDxu6fcqaXW9yH1Lr1bZYmv5LZHrFhQo2Ucy8wgnWVKvbWzLwkSJu\n" + "Te7hEzRS+bcISYYL8yBndUH3ZJBnn98gDhZBDYILUzNDhBZZB9bKsNxD0I7j/ofK\n" + "xamEZKA7SYGOpdqmJVypWMEDUFd49BqYo4/94iVgFUAzg+ypc8lLxC8CFPrunkmL\n" + "QfxyoZ50yB3OvKl3pR9Uk7n4+aBBPYRDEqOosZ71ARzW3iBnGSnlsmECAwEAAQ==\n" + "-----END RSA PUBLIC KEY-----\n"; var mobilePrivateKey = "-----BEGIN RSA PRIVATE KEY-----\n" + "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\n" + "-----END RSA PRIVATE KEY-----\n"; var encryptedMessage = bouncyCryptoHelper.EncryptMessage(input, mobilePublicKey); var output = bouncyCryptoHelper.DecryptMessage(encryptedMessage, mobilePrivateKey); Assert.Equal(input, output); }