예제 #1
0
        public void store(EzyKeyPair keypair)
        {
            Directory.CreateDirectory(FOLDER);
            StreamWriter publicKeyWriter = new StreamWriter(PUBLIC_KEY_PATH, true);

            publicKeyWriter.WriteLine(keypair.getPublicKey());
            publicKeyWriter.Close();
            StreamWriter privateKeyWriter = new StreamWriter(PRIVATE_KEY_PATH, true);

            privateKeyWriter.WriteLine(keypair.getPrivateKey());
            privateKeyWriter.Close();
        }
예제 #2
0
        public EzyKeyPair generate(int keySize)
        {
            RsaKeyPairGenerator generator = new RsaKeyPairGenerator();

            generator.Init(new KeyGenerationParameters(new SecureRandom(), keySize));
            var pair       = generator.GenerateKeyPair();
            var privateKey = PrivateKeyInfoFactory.CreatePrivateKeyInfo(pair.Private);

            byte[] privateKeyBytes  = privateKey.ToAsn1Object().GetDerEncoded();
            string privateKeyString = Convert.ToBase64String(privateKeyBytes);

            var publicKey = SubjectPublicKeyInfoFactory.CreateSubjectPublicKeyInfo(pair.Public);

            byte[]     publicKeyBytes  = publicKey.ToAsn1Object().GetDerEncoded();
            string     publicKeyString = Convert.ToBase64String(publicKeyBytes);
            EzyKeyPair keyPair         = new EzyKeyPair(privateKeyString, publicKeyString);

            return(keyPair);
        }