示例#1
0
        public static void RecoverPublicKey(string privateKeyPath)
        {
            bool validUserInput = FilePathValidation.RecoverPublicKey(privateKeyPath);

            if (!validUserInput)
            {
                return;
            }
            byte[] privateKey = AsymmetricKeyValidation.GetPrivateKeyFromFile(privateKeyPath);
            if (privateKey == null)
            {
                return;
            }
            privateKey = PrivateKey.Decrypt(privateKey);
            if (privateKey == null)
            {
                return;
            }
            byte[] publicKey = privateKey.Length switch
            {
                Constants.EncryptionKeyLength => AsymmetricKeys.GetCurve25519PublicKey(privateKey),
                _ => AsymmetricKeys.GetEd25519PublicKey(privateKey),
            };
            Console.WriteLine($"Public key: {Convert.ToBase64String(publicKey)}");
        }
示例#2
0
 public static void GenerateNewKeyPair(string exportDirectoryPath)
 {
     try
     {
         int  keyPairType    = GetKeyPairType();
         bool validUserInput = FilePathValidation.GenerateKeyPair(exportDirectoryPath, keyPairType);
         if (!validUserInput)
         {
             return;
         }
         string publicKey, privateKey, publicKeyPath, privateKeyPath;
         if (keyPairType == 1)
         {
             (publicKey, privateKey)         = AsymmetricKeys.GenerateEncryptionKeyPair();
             (publicKeyPath, privateKeyPath) = AsymmetricKeys.ExportEncryptionKeyPair(exportDirectoryPath, publicKey, privateKey);
         }
         else
         {
             (publicKey, privateKey)         = AsymmetricKeys.GenerateSigningKeyPair();
             (publicKeyPath, privateKeyPath) = AsymmetricKeys.ExportSigningKeyPair(exportDirectoryPath, publicKey, privateKey);
         }
         DisplayKeyPair(publicKey, publicKeyPath, privateKeyPath);
     }
     catch (Exception ex) when(ExceptionFilters.FileAccess(ex))
     {
         Logging.LogException(ex.ToString(), Logging.Severity.Error);
         DisplayMessage.FilePathException(exportDirectoryPath, ex.GetType().Name, "Unable to export key pair.");
     }
 }