示例#1
0
        public void PersistentKey_InvalidAlgorithm()
        {
            Assert.Throws <ArgumentException>(() => new ECDHKey(CngAlgorithm.Rsa));

            using (var k = new ECDHKey(TestKeyName))
                Assert.Throws <InvalidOperationException>(() => new ECDHKey(CngAlgorithm.ECDiffieHellmanP384, TestKeyName));
        }
示例#2
0
        public void DeriveSharedKey()
        {
            using (var k1 = new ECDHKey())
                using (var k2 = new ECDHKey())
                {
                    var sharedKey1 = k1.DeriveSharedKey(k2.PublicKey);
                    var sharedKey2 = k2.DeriveSharedKey(k1.PublicKey);

                    Assert.That(sharedKey1, Is.EqualTo(sharedKey2));
                }
        }
示例#3
0
        public static NewRegRequest CreateNewRegRequestEntity(BaseRequest br, string wxAccount, string wxPwd, string nickName, string ticket, byte[] randomEncryKey,
                                                              ECDHKey cliPubECDHKey, string clientid, string androidid, string fingerprint, string mac, string regID)
        {
            NewRegRequest.Builder nggb = new NewRegRequest.Builder();
            nggb.SetBase(br);
            nggb.SetUserName("");
            string strPwd = System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(wxPwd, "MD5");

            nggb.SetPwd(strPwd);
            nggb.SetNickName(nickName);
            nggb.SetBindUin(0);
            nggb.SetBindEmail("");
            nggb.SetBindMobile(wxAccount);
            nggb.SetTicket(ticket);
            nggb.SetBuiltinIPSeq(0);
            nggb.SetDLSrc(0);
            nggb.SetRegMode(1);
            nggb.SetTimeZone("8.00");
            nggb.SetLanguage("zh_CN");
            nggb.SetForceReg(1);
            nggb.SetRealCountry("cn");
            SKBuiltinBuffer_t.Builder skbb = new SKBuiltinBuffer_t.Builder();
            skbb.SetILen(16);
            byte[] randomKey = randomEncryKey;
            skbb.SetBuffer(ByteString.CopyFrom(randomKey));
            SKBuiltinBuffer_t sbk = skbb.Build();

            nggb.SetRandomEncryKey(sbk);
            nggb.SetAlias("");
            nggb.SetVerifyContent("");
            nggb.SetVerifySignature("");
            nggb.SetHasHeadImg(0);
            nggb.SetSuggestRet(0);
            nggb.SetClientSeqId(clientid);
            //nggb.SetBundleId("");
            nggb.SetCliPubEcdhkey(cliPubECDHKey);
            //nggb.SetBundleId("");
            nggb.SetGoogleAid("");
            nggb.SetMobileCheckType(0);
            nggb.SetBioSigCheckType(0);
            nggb.SetRegSessionId(regID);
            nggb.SetAndroidInstallRef("");
            nggb.SetAndroidId(androidid);
            nggb.SetClientFingerprint(fingerprint);
            nggb.SetMacAddr(mac);

            NewRegRequest ngg = nggb.Build();

            return(ngg);
        }
示例#4
0
        public void PersistentKey()
        {
            using (var k1 = new ECDHKey(TestKeyName))
                using (var k2 = new ECDHKey(TestKeyName))
                {
                    Assert.That(k1.IsEphemeral, Is.False);
                    Assert.That(k2.IsEphemeral, Is.False);

                    Assert.That(k1.KeyName, Is.EqualTo(TestKeyName));
                    Assert.That(k2.KeyName, Is.EqualTo(TestKeyName));

                    Assert.That(k1.PublicKey, Is.EqualTo(k2.PublicKey));
                }
        }
示例#5
0
        public void EphemeralKey()
        {
            using (var k1 = new ECDHKey())
                using (var k2 = new ECDHKey())
                {
                    Assert.That(k1.IsEphemeral, Is.True);
                    Assert.That(k2.IsEphemeral, Is.True);

                    Assert.That(k1.KeyName, Is.Null);
                    Assert.That(k2.KeyName, Is.Null);

                    Assert.That(k1.PublicKey, Is.Not.EqualTo(k2.PublicKey));
                }
        }
示例#6
0
        public static InitKey CreateInitKeyEntity(byte[] randomEncryKey, ECDHKey cliPubECDHKey, string string_0, string wxPwd)
        {
            InitKey.Builder           builder  = new InitKey.Builder();
            SKBuiltinBuffer_t.Builder builder2 = new SKBuiltinBuffer_t.Builder();
            builder2.SetILen(16);
            builder2.SetBuffer(ByteString.CopyFrom(randomEncryKey));
            builder.SetRandomEncryKey(builder2);
            builder.SetCliPubECDHKey(cliPubECDHKey);
            builder.SetAccount(string_0);
            string text = FormsAuthentication.HashPasswordForStoringInConfigFile(wxPwd, "MD5");

            builder.SetPwd(text);
            builder.SetPwd2(text);
            return(builder.Build());
        }
示例#7
0
        public static InitKey CreateInitKeyEntity(byte[] randomEncryKey, ECDHKey cliPubECDHKey, string WXAccount, string wxPwd)
        {
            InitKey.Builder           key  = new InitKey.Builder();
            SKBuiltinBuffer_t.Builder skbb = new SKBuiltinBuffer_t.Builder();
            skbb.SetILen(16);
            skbb.SetBuffer(ByteString.CopyFrom(randomEncryKey));
            key.SetRandomEncryKey(skbb);
            key.SetCliPubECDHKey(cliPubECDHKey);
            key.SetAccount(WXAccount);
            string strWxPwd = System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(wxPwd, "MD5");

            key.SetPwd(strWxPwd);
            key.SetPwd2(strWxPwd);

            return(key.Build());
        }
示例#8
0
        public static AutoAuthRsaReqData CreateAutoAuthKeyEntity(byte[] randomEncryKey, ECDHKey cliPubECDHKey)
        {
            AutoAuthRsaReqData.Builder key  = new AutoAuthRsaReqData.Builder();
            SKBuiltinBuffer_t.Builder  skbb = new SKBuiltinBuffer_t.Builder();
            skbb.SetILen(16);
            skbb.SetBuffer(ByteString.CopyFrom(randomEncryKey));
            key.SetAesEncryptKey(skbb);
            key.SetCliPubECDHKey(cliPubECDHKey);

            return(key.Build());
        }