コード例 #1
0
 public void SetPPKey(PublicPrivateKey ppk)
 {
     if (ppkey == null)
     {
         ppkey = ppk;
     }
     else
     {
         throw new System.Exception("Already set");
     }
 }
コード例 #2
0
ファイル: Program.cs プロジェクト: gpdoud/public-private-key
        void RunTestPrime()
        {
            PublicPrivateKey ppk   = new PublicPrivateKey();
            long             prime = 1000000000000000000;

            while (!ppk.isPrime(prime))
            {
                prime--;
            }
            Debug.WriteLine($"{prime} is prime");
        }
コード例 #3
0
ファイル: BaseManager.cs プロジェクト: Underwood12/vncrat
        public PublicPrivateKey CreateNewKeyPairKey(String HostSystemId)
        {
            var rsa = new RSACryptoServiceProvider();
            PublicPrivateKey pair = new PublicPrivateKey();

            pair.PrivateKey = rsa.ToXmlString(true);
            pair.PublicKey  = rsa.ToXmlString(false);

            if (_myKeys.ContainsKey(HostSystemId))
            {
                _myKeys.Remove(HostSystemId);
            }
            this._myKeys.Add(HostSystemId, pair);
            return(pair);
        }
コード例 #4
0
ファイル: Program.cs プロジェクト: gpdoud/public-private-key
        void Run()
        {
            PublicPrivateKey ppl = new PublicPrivateKey();

            ppl.p = 3;
            ppl.q = 11;
            ppl.e = 17;
            ppl.d = 13;

            var enc = ppl.Encrypt(9);

            Debug.WriteLine($"9 encrypted is {enc}");
            var dec = ppl.Decrypt(15);

            Debug.WriteLine($"15 decrypted is {dec}");
        }
コード例 #5
0
        public PublicPrivateKey GetKeys()
        {
            Chilkat.Rsa rsa = new Chilkat.Rsa();
            rsa.GenerateKey(1024);

            string publicKey  = rsa.ExportPublicKey();
            string privateKey = rsa.ExportPrivateKey();

            var data = new PublicPrivateKey()
            {
                PrivateKey = privateKey,
                PublicKey  = publicKey
            };

            return(data);
        }
コード例 #6
0
        public string Build()
        {
            SigningCredentials signingCredentials;
            string?            kid = null;

            if (PublicPrivateKey == null)
            {
                Certificate.Verify(nameof(Certificate)).IsNotNull();
                var securityKey = new X509SecurityKey(Certificate);
                signingCredentials = new SigningCredentials(securityKey, SecurityAlgorithms.RsaSha512);
            }
            else
            {
                kid = PublicPrivateKey.Kid.ToString();
                var privateSecurityKey = new RsaSecurityKey(PublicPrivateKey.GetPrivateKey());

                signingCredentials = new SigningCredentials(privateSecurityKey, SecurityAlgorithms.RsaSha512);
            }

            var header = new JwtHeader(signingCredentials);

            header["kid"] = kid ?? header["kid"];

            var addClaims = new List <Claim>();

            if (!WebKey.IsEmpty())
            {
                addClaims.Add(new Claim(JwtStandardClaimNames.WebKeyName, WebKey));
            }
            ;

            var payload = new JwtPayload(Issuer, Audience, Claims.Concat(addClaims), NotBefore, Expires, IssuedAt);

            var jwtToken     = new JwtSecurityToken(header, payload);
            var tokenHandler = new JwtSecurityTokenHandler();

            return(tokenHandler.WriteToken(jwtToken));
        }