public void MessageDecryptor_Decrypt_Should_Decrypt_When_Has_Valid_Data(bool privateKeyIsReciever) { var title = "tit"; var content = "content123"; var keyPairTest = new KeysPair() { PublicKey = Convert.FromBase64String("BgIAAACkAABSU0ExAAgAAAEAAQDFz6K8OaO4J/HZYxt1Zi73N95LAvgR+7lMmBW/CpOC0FSswtAaNf+He1P8iVxwqsGQPEZIV6wuqRk29fUycUPrHBM6j3plKtE9Y6IMBoX4g/mu44XXChMbaDkl5EUcX+SY/8DzTrsqnghg7tpI0TffHh5fO6/snBi1HxqGH/OTsvu3J/vP86FRGBMzxPSQcq0sx66HBmQUC7i4WPJqnsRITiBu4z0vZr1rSYLr26OivEmwpHKgos78rbn+I3PjWe2CtNydhvJ2Qd4Lq09/dK72uWwfR9zc8J2LGdOVxAovGyva+EW/lQNa//dnTz6tOrla+H1v3tFEh0X89wz9zx/P"), PrivateKey = Convert.FromBase64String("BwIAAACkAABSU0EyAAgAAAEAAQDFz6K8OaO4J/HZYxt1Zi73N95LAvgR+7lMmBW/CpOC0FSswtAaNf+He1P8iVxwqsGQPEZIV6wuqRk29fUycUPrHBM6j3plKtE9Y6IMBoX4g/mu44XXChMbaDkl5EUcX+SY/8DzTrsqnghg7tpI0TffHh5fO6/snBi1HxqGH/OTsvu3J/vP86FRGBMzxPSQcq0sx66HBmQUC7i4WPJqnsRITiBu4z0vZr1rSYLr26OivEmwpHKgos78rbn+I3PjWe2CtNydhvJ2Qd4Lq09/dK72uWwfR9zc8J2LGdOVxAovGyva+EW/lQNa//dnTz6tOrla+H1v3tFEh0X89wz9zx/PTwh97VHN4SpiUwqQ63PC8Yw1kUKiWb5AxS2wfQ0BwrP0rFRtTbb1AAJyuUaYFiuj7prXxL+tC3iLr4aCVx59HtprbZU49ovWWuDiwYCjmdXGlN4LEAzf010z8eW23JuiJ2f0nWMbqQYYiC6sZA11ua9gA0PWQgF+Z3Wuu9Yyxd6rzVm5BqvcfkFy1FVeMv1mVBmHENZNiF6kXy+dlkWTwxXnFpLC7foqcrzLYvUR8s7044wmilyglQuhuAIl+QPxAl/jEm/chfB4gK+QJiJ2ehSqnFftmy2gVQ84IUGZQjj6q+BHPgVIwpeXlfPxV7q2HTDullOdF7cefTO3xiUF7iFtIyHfcDWskYu6SADj3CkLy8Duzq2O6SNt1Rj310zqHBXHgfTUVkrkU9MR5wbKw9gbLJnjtNsf+ajAKTdqORx1F7osMG9vGIGXkntUFL6VGOcz9DI/VkhsU5DPVUTUaAna9/hrSCwOzFrMJs5e2Xn9sK1fzPXsoV1vTJPt7pxSr8s8vm8r3r/2LyYcEJtXMXhArvgMvxjli6Y/SpwE4Td9RZnEu5gdmjvpAlRhB+wL+cFdjw2QHMyOG6cUwPfQbWsDXkA4OGGpKlDG+IF93WhoRGhqZ/aFivEN8Re9y7AiYP2XIVhsWAx5jQmPib+HQ6UCSyD9GnbE+sjD3Hql7rk5gzeJWOUKc9IcRPz/JQFMv9sNw6yf3tDPUtuhn/308u8O3l9aafihyEI616oZD36PNqq811JXnKmuNOALrIUSeeopTcwB+FvfwrWshaY2ss62fvucYFhJwZg3XuV8KDoCqGz5Srivmr/oC5RqKFKyGZ8CAjwmrGuKmI3EaBh92blnANSi4d2o00WBjpPE1xhqdFHFprc1mkootEzmg55x0t7nMGpA6HhVxtiyHvswRVtHY25+IJD8RyClYevjDcEbrtRmsbxKmnlitFAoVaP5VdlsW1+QZMJxDiqKtfVhjBITUev3qCzREeMhkAuKR2gyGqALXxAZRpU9Mx3hyccKO7dzmo1BjQJ01EX32UaS0ZZp1xikQ807BfjdPXUsdsDR6KdPvpCJLotccKe1xMIO4ExN1MVxXza+XR94/PpEuUbeTvN00DMiAFtCEDGz/x9kmAUaHxd6tZh8iFXaxRqDBOOoHgzv7wMtwTt4svlAWapCtWEi1epx8uvW/PQ8YIU=") }; var toPublicKeyBase64 = "BgIAAACkAABSU0ExAAgAAAEAAQAF7p/n+6T+dUoRA0V+SQZBtK9C7KZYfFFM/ASeiSVk8zp6Y84OQ115boZcfLL5K/ySYcuvWs6PdjJoGc/y3fDt2ojEdiF33g0AlPkrI+3QjM6V0xtcIqsx/2itlwb8qLvMqsATIJ7wzQiRvta+jqpTtP7Y28FsFgag5djj+oFgcU5l2tbx83uHYncueLehjJYMtNK8T1WqRuEpBwWuDA6q+XX8sX+XdhVQ8EzJco+Rme5rXNTGqrTuFW9rFmzQwuDIwKPhoTpE6sJ4rsv4/LtM2lT6GjQg0PlIwJf48eYra4h+0KnEfK5+a/HmdLCk36I/LenvpHD7NVun0kOp9/mq"; var toPrivateKeyBase64 = "BwIAAACkAABSU0EyAAgAAAEAAQAF7p/n+6T+dUoRA0V+SQZBtK9C7KZYfFFM/ASeiSVk8zp6Y84OQ115boZcfLL5K/ySYcuvWs6PdjJoGc/y3fDt2ojEdiF33g0AlPkrI+3QjM6V0xtcIqsx/2itlwb8qLvMqsATIJ7wzQiRvta+jqpTtP7Y28FsFgag5djj+oFgcU5l2tbx83uHYncueLehjJYMtNK8T1WqRuEpBwWuDA6q+XX8sX+XdhVQ8EzJco+Rme5rXNTGqrTuFW9rFmzQwuDIwKPhoTpE6sJ4rsv4/LtM2lT6GjQg0PlIwJf48eYra4h+0KnEfK5+a/HmdLCk36I/LenvpHD7NVun0kOp9/mqDxurj+u8E13h7bDdR14+nGD+A/wCAvxPMrhOnSsdR7FAZt+DKCS4M8AFtPePWtWh1MAO/hWRMVJ/+UwwpUOkO852CopqnqdaM0ixrLE+PIsgZhOoHVcELEbFis6oj5ivDMe2RGlkpUcaF2PzAT73KL0UmfCSqOudo1asHJDCiMirdZlflJboNTihNfhSx6pZ06q1lAnGWQG/mbIGgelb/qq6Tbosky4tnf2hhJrhI9QgvycQ6+JWTf/9S1Ovk0ww6vO2E9NeLJ92nTRk+tTF6v9YDImz5UFcNrWFLfFGaQXO5iyVC4HmMDglNj/FiQlPrG1HWU+6tREjrW0/tE5E2h0mXKa42wZKc6LGUvuOKWOoExsDzlW8KyWTXyfdJXvLhYsbBDzrc1h023G4MnY4fN8j5F7D8fhrPP9IhL0QZLvQUBXwl4h6IL+OC0tCATEm1xIZZXF0pkdJFevxwg6qgJ72UF4wqIwdoZgxuPdJaDATwVK4ymS/8ueNIE9mzKucEa1W79wO3HMVle5OUDlwOTzNmKwtk2zObHf1vbZPaEHAo9OeRo49iBX4RkldVoOSmTpiySN5tDyD0ftE3JnwYEGfzbCkaCmT36IG8HuI0e8qNInJGDG+pKMqqGXbpDZLfxkF7KesLmnQPimW0l3ih+9UpVRUPG4II+HhczxRRSk2jwtZdsT1hXpK0Gt7DKLc48rCxEEOsB9QjtfzBNL45Q9z4hC37/Qefz/pIqGLy7REqKqu9BNH1Rv7lUzoxj+0k6x33zgMJrDPktS29NQz1qfzyI3LDkVY2o+ttOQQNVJoomeIwQZGjy7YoG2ZMVWkJFJTHU3OE+J+xerhe9iusZk2ljFp2fAgYUl7ZAUM2q0sBkbhfHHwl9kDr9fuM5yoNTidJMJawmwVew/nAzzZLBptRi9fFqBpfuYPa2bfCSjFAelOnQTLlEqAb++PpAgALR/DJELSyOs90+Xry8vzF2WfvqOnwhI8tyeWhaCwETujoeCatJ9W20bSjGhmTU/pnMi4W8ow6kM+2yQ5ultj4ewQQ+B1NzHUR4mIOXBIQlgKSTlEPkJkhWL2EJVpLECmZSdmhXscp52IpQRYeXBUhwJXbX8QEO42Tf7MPfb97kWjzWZ2BdxVOAUyEJb67Vi3ZSX4f8qlZP5CvfcnJc4pqPPBYEKNT++90vPEBMra1Fg="; var mb = new EncryptedMessageBuilder(new HashCash()); var msg = mb.AddContent(content) .AddTitle(title) .AddReciever(toPublicKeyBase64) .AddSender(Convert.ToBase64String(keyPairTest.PublicKey)) .EncryptAndBuild(Convert.ToBase64String(keyPairTest.PrivateKey)); var md = new MessageDecryptor(); var msgd = md.Decrypt(msg, privateKeyIsReciever ? toPrivateKeyBase64 : Convert.ToBase64String(keyPairTest.PrivateKey), privateKeyIsReciever); Assert.True(msg.Id == msgd.Id); Assert.True(msg.Timestamp == msgd.Timestamp); Assert.True(msg.To == msgd.To); Assert.True(msg.From == msgd.From); Assert.True(title == msgd.Title); Assert.True(content == msgd.Content); }
public void MessageDecryptor_Decrypt_Should_Throw_Exception_When_Try_Use_Wrong_Private_Key() { var title = "tit"; var content = "content123"; var keyPairTest = new KeysPair() { PublicKey = Convert.FromBase64String("BgIAAACkAABSU0ExAAgAAAEAAQDFz6K8OaO4J/HZYxt1Zi73N95LAvgR+7lMmBW/CpOC0FSswtAaNf+He1P8iVxwqsGQPEZIV6wuqRk29fUycUPrHBM6j3plKtE9Y6IMBoX4g/mu44XXChMbaDkl5EUcX+SY/8DzTrsqnghg7tpI0TffHh5fO6/snBi1HxqGH/OTsvu3J/vP86FRGBMzxPSQcq0sx66HBmQUC7i4WPJqnsRITiBu4z0vZr1rSYLr26OivEmwpHKgos78rbn+I3PjWe2CtNydhvJ2Qd4Lq09/dK72uWwfR9zc8J2LGdOVxAovGyva+EW/lQNa//dnTz6tOrla+H1v3tFEh0X89wz9zx/P"), PrivateKey = Convert.FromBase64String("BwIAAACkAABSU0EyAAgAAAEAAQDFz6K8OaO4J/HZYxt1Zi73N95LAvgR+7lMmBW/CpOC0FSswtAaNf+He1P8iVxwqsGQPEZIV6wuqRk29fUycUPrHBM6j3plKtE9Y6IMBoX4g/mu44XXChMbaDkl5EUcX+SY/8DzTrsqnghg7tpI0TffHh5fO6/snBi1HxqGH/OTsvu3J/vP86FRGBMzxPSQcq0sx66HBmQUC7i4WPJqnsRITiBu4z0vZr1rSYLr26OivEmwpHKgos78rbn+I3PjWe2CtNydhvJ2Qd4Lq09/dK72uWwfR9zc8J2LGdOVxAovGyva+EW/lQNa//dnTz6tOrla+H1v3tFEh0X89wz9zx/PTwh97VHN4SpiUwqQ63PC8Yw1kUKiWb5AxS2wfQ0BwrP0rFRtTbb1AAJyuUaYFiuj7prXxL+tC3iLr4aCVx59HtprbZU49ovWWuDiwYCjmdXGlN4LEAzf010z8eW23JuiJ2f0nWMbqQYYiC6sZA11ua9gA0PWQgF+Z3Wuu9Yyxd6rzVm5BqvcfkFy1FVeMv1mVBmHENZNiF6kXy+dlkWTwxXnFpLC7foqcrzLYvUR8s7044wmilyglQuhuAIl+QPxAl/jEm/chfB4gK+QJiJ2ehSqnFftmy2gVQ84IUGZQjj6q+BHPgVIwpeXlfPxV7q2HTDullOdF7cefTO3xiUF7iFtIyHfcDWskYu6SADj3CkLy8Duzq2O6SNt1Rj310zqHBXHgfTUVkrkU9MR5wbKw9gbLJnjtNsf+ajAKTdqORx1F7osMG9vGIGXkntUFL6VGOcz9DI/VkhsU5DPVUTUaAna9/hrSCwOzFrMJs5e2Xn9sK1fzPXsoV1vTJPt7pxSr8s8vm8r3r/2LyYcEJtXMXhArvgMvxjli6Y/SpwE4Td9RZnEu5gdmjvpAlRhB+wL+cFdjw2QHMyOG6cUwPfQbWsDXkA4OGGpKlDG+IF93WhoRGhqZ/aFivEN8Re9y7AiYP2XIVhsWAx5jQmPib+HQ6UCSyD9GnbE+sjD3Hql7rk5gzeJWOUKc9IcRPz/JQFMv9sNw6yf3tDPUtuhn/308u8O3l9aafihyEI616oZD36PNqq811JXnKmuNOALrIUSeeopTcwB+FvfwrWshaY2ss62fvucYFhJwZg3XuV8KDoCqGz5Srivmr/oC5RqKFKyGZ8CAjwmrGuKmI3EaBh92blnANSi4d2o00WBjpPE1xhqdFHFprc1mkootEzmg55x0t7nMGpA6HhVxtiyHvswRVtHY25+IJD8RyClYevjDcEbrtRmsbxKmnlitFAoVaP5VdlsW1+QZMJxDiqKtfVhjBITUev3qCzREeMhkAuKR2gyGqALXxAZRpU9Mx3hyccKO7dzmo1BjQJ01EX32UaS0ZZp1xikQ807BfjdPXUsdsDR6KdPvpCJLotccKe1xMIO4ExN1MVxXza+XR94/PpEuUbeTvN00DMiAFtCEDGz/x9kmAUaHxd6tZh8iFXaxRqDBOOoHgzv7wMtwTt4svlAWapCtWEi1epx8uvW/PQ8YIU=") }; var toPublicKeyBase64 = "BgIAAACkAABSU0ExAAgAAAEAAQAF7p/n+6T+dUoRA0V+SQZBtK9C7KZYfFFM/ASeiSVk8zp6Y84OQ115boZcfLL5K/ySYcuvWs6PdjJoGc/y3fDt2ojEdiF33g0AlPkrI+3QjM6V0xtcIqsx/2itlwb8qLvMqsATIJ7wzQiRvta+jqpTtP7Y28FsFgag5djj+oFgcU5l2tbx83uHYncueLehjJYMtNK8T1WqRuEpBwWuDA6q+XX8sX+XdhVQ8EzJco+Rme5rXNTGqrTuFW9rFmzQwuDIwKPhoTpE6sJ4rsv4/LtM2lT6GjQg0PlIwJf48eYra4h+0KnEfK5+a/HmdLCk36I/LenvpHD7NVun0kOp9/mq"; var invalidToPrivateKeyBase64 = "BwIAAACkAABSU0EyAAgAAAEAAQDFz6K8OaO4J/HZYxt1Zi73N95LAvgR+7lMmBW/CpOC0FSswtAaNf+He1P8iVxwqsGQPEZIV6wuqRk29fUycUPrHBM6j3plKtE9Y6IMBoX4g/mu44XXChMbaDkl5EUcX+SY/8DzTrsqnghg7tpI0TffHh5fO6/snBi1HxqGH/OTsvu3J/vP86FRGBMzxPSQcq0sx66HBmQUC7i4WPJqnsRITiBu4z0vZr1rSYLr26OivEmwpHKgos78rbn+I3PjWe2CtNydhvJ2Qd4Lq09/dK72uWwfR9zc8J2LGdOVxAovGyva+EW/lQNa//dnTz6tOrla+H1v3tFEh0X89wz9zx/PTwh97VHN4SpiUwqQ63PC8Yw1kUKiWb5AxS2wfQ0BwrP0rFRtTbb1AAJyuUaYFiuj7prXxL+tC3iLr4aCVx59HtprbZU49ovWWuDiwYCjmdXGlN4LEAzf010z8eW23JuiJ2f0nWMbqQYYiC6sZA11ua9gA0PWQgF+Z3Wuu9Yyxd6rzVm5BqvcfkFy1FVeMv1mVBmHENZNiF6kXy+dlkWTwxXnFpLC7foqcrzLYvUR8s7044wmilyglQuhuAIl+QPxAl/jEm/chfB4gK+QJiJ2ehSqnFftmy2gVQ84IUGZQjj6q+BHPgVIwpeXlfPxV7q2HTDullOdF7cefTO3xiUF7iFtIyHfcDWskYu6SADj3CkLy8Duzq2O6SNt1Rj310zqHBXHgfTUVkrkU9MR5wbKw9gbLJnjtNsf+ajAKTdqORx1F7osMG9vGIGXkntUFL6VGOcz9DI/VkhsU5DPVUTUaAna9/hrSCwOzFrMJs5e2Xn9sK1fzPXsoV1vTJPt7pxSr8s8vm8r3r/2LyYcEJtXMXhArvgMvxjli6Y/SpwE4Td9RZnEu5gdmjvpAlRhB+wL+cFdjw2QHMyOG6cUwPfQbWsDXkA4OGGpKlDG+IF93WhoRGhqZ/aFivEN8Re9y7AiYP2XIVhsWAx5jQmPib+HQ6UCSyD9GnbE+sjD3Hql7rk5gzeJWOUKc9IcRPz/JQFMv9sNw6yf3tDPUtuhn/308u8O3l9aafihyEI616oZD36PNqq811JXnKmuNOALrIUSeeopTcwB+FvfwrWshaY2ss62fvucYFhJwZg3XuV8KDoCqGz5Srivmr/oC5RqKFKyGZ8CAjwmrGuKmI3EaBh92blnANSi4d2o00WBjpPE1xhqdFHFprc1mkootEzmg55x0t7nMGpA6HhVxtiyHvswRVtHY25+IJD8RyClYevjDcEbrtRmsbxKmnlitFAoVaP5VdlsW1+QZMJxDiqKtfVhjBITUev3qCzREeMhkAuKR2gyGqALXxAZRpU9Mx3hyccKO7dzmo1BjQJ01EX32UaS0ZZp1xikQ807BfjdPXUsdsDR6KdPvpCJLotccKe1xMIO4ExN1MVxXza+XR94/PpEuUbeTvN00DMiAFtCEDGz/x9kmAUaHxd6tZh8iFXaxRqDBOOoHgzv7wMtwTt4svlAWapCtWEi1epx8uvW/PQ8YIU="; var mb = new EncryptedMessageBuilder(new HashCash()); var msg = mb.AddContent(content) .AddTitle(title) .AddReciever(toPublicKeyBase64) .AddSender(Convert.ToBase64String(keyPairTest.PublicKey)) .EncryptAndBuild(Convert.ToBase64String(keyPairTest.PrivateKey)); var md = new MessageDecryptor(); Assert.ThrowsAny <Exception>(() => { md.Decrypt(msg, invalidToPrivateKeyBase64, true); }); }