Beispiel #1
0
        public void GetServersRootPublicKeyTest()
        {
            var keyPair      = ThaliCryptoUtilities.GenerateThaliAcceptablePublicPrivateKeyPair();
            var pkcs12Stream = ThaliCryptoUtilities.CreatePKCS12KeyStoreWithPublicPrivateKeyPair(
                keyPair,
                ThaliCryptoUtilities.DefaultPassPhrase);
            var cert      = ThaliCryptoUtilities.GetX509Certificate(pkcs12Stream, ThaliCryptoUtilities.DefaultPassPhrase);
            var serverKey = ThaliClientToDeviceHubUtilities.GetServersRootPublicKey(Host, Port, cert);

            Assert.IsNotNull(serverKey);
        }
Beispiel #2
0
        public void ThaliWebRequestTest()
        {
            var keyPair      = ThaliCryptoUtilities.GenerateThaliAcceptablePublicPrivateKeyPair();
            var pkcs12Stream = ThaliCryptoUtilities.CreatePKCS12KeyStoreWithPublicPrivateKeyPair(
                keyPair,
                ThaliCryptoUtilities.DefaultPassPhrase);
            var cert             = ThaliCryptoUtilities.GetX509Certificate(pkcs12Stream, ThaliCryptoUtilities.DefaultPassPhrase);
            var serverKey        = ThaliClientToDeviceHubUtilities.GetServersRootPublicKey(Host, Port, cert);
            var serverHttpKeyUri = HttpKeyUri.BuildHttpKeyUri(serverKey, Host, Port, null, null);
            var thaliWebRequest  = ThaliClientToDeviceHubUtilities.CreateThaliWebRequest(serverHttpKeyUri, cert);

            thaliWebRequest.Method = "GET";
            thaliWebRequest.GetResponse().Close();
        }
        public void TestKeyStoreMethods()
        {
            var keyPair            = ThaliCryptoUtilities.GenerateThaliAcceptablePublicPrivateKeyPair();
            var keyStoreBinary     = ThaliCryptoUtilities.CreatePKCS12KeyStoreWithPublicPrivateKeyPair(keyPair, ThaliCryptoUtilities.DefaultPassPhrase);
            var x509cert           = ThaliCryptoUtilities.GetX509Certificate(keyStoreBinary, ThaliCryptoUtilities.DefaultPassPhrase);
            var retrievedKeyParams = ((RSACryptoServiceProvider)x509cert.PrivateKey).ExportParameters(true);

            var originalBigIntegerRsaPublicKey  = new BigIntegerRSAPublicKey((RsaKeyParameters)keyPair.Public);
            var retrievedBigIntegerRsaPublicKey = new BigIntegerRSAPublicKey(retrievedKeyParams);

            Assert.IsTrue(originalBigIntegerRsaPublicKey.Equals(retrievedBigIntegerRsaPublicKey));

            var originalKeyParams = (RsaPrivateCrtKeyParameters)keyPair.Private;

            Assert.IsTrue(
                originalKeyParams.DP.Equals(new BigInteger(1, retrievedKeyParams.DP)) &&
                originalKeyParams.DQ.Equals(new BigInteger(1, retrievedKeyParams.DQ)) &&
                originalKeyParams.P.Equals(new BigInteger(1, retrievedKeyParams.P)) &&
                originalKeyParams.Q.Equals(new BigInteger(1, retrievedKeyParams.Q)));
        }