2017-03-07 4 views
0

J'ai un problème particulier avec BouncyCastle.Le fichier crypté BouncyCastle force la saisie de la phrase secrète

Ce qui se passe, c'est que j'utilise une clé publique pour chiffrer un fichier texte, qui est ensuite transmis à un tiers. Lorsqu'ils tentent d'auto-décrypter le fichier à leur fin (en utilisant Globalscape - pas sûr de la version), le processus échoue, demandant une phrase secrète pour déverrouiller la clé secrète.

Si je fais le même processus, mais crypter le fichier en utilisant GPG4Win avec la même clé, ils n'obtiennent pas le même problème.

Ce code fait le cryptage:

private static bool EncryptFile(Stream outputStream, string fileName, PgpPublicKey encKey, bool withIntegrityCheck) 
     { 
      try 
      { 
       var bytes = PgpUtils.CompressFile(fileName, CompressionAlgorithmTag.Uncompressed); 

       // encrypt using AES-256 
       var encryptedDataGenerator = new PgpEncryptedDataGenerator(SymmetricKeyAlgorithmTag.Aes256, withIntegrityCheck, new SecureRandom()); 
       encryptedDataGenerator.AddMethod(encKey); 

       using (var cOutStream = encryptedDataGenerator.Open(outputStream, bytes.Length)) 
       { 
        cOutStream.Write(bytes, 0, bytes.Length); 
       } 

       return true; 
      } 
      catch (Exception e) 
      { 
       Trace.TraceError($"Exception in EncryptFile: {e}"); 
       return false; 
      } 
     } 

Je dois admettre que je suis un peu perdu ici. Quelqu'un peut-il signaler ce que je manque? Ou devrais-je demander à la troisième partie de creuser plus loin?

Vive

Répondre

0

Ceci est plus une approche de haut niveau pour cerner le problème sous-jacent:

Vous cryptez avec une clé publique. Cela signifie que le destinataire a besoin de la clé privée correspondante.

Il semble que le destinataire a la clé, car sinon le client devrait se plaindre d'une clé privée manquant, pas un mot de passe manquant pour la clé.

Vérifiez les points suivants (de facile à pas si facile)

  • peut-il Décrypter destinataire quand il entre dans le mot de passe? Si oui, configurez le client pour enregistrer la phrase secrète.
  • Essayez de décrypter avec votre gpg local
  • Etes-vous sûr que le client a la clé privée? Si non, assurez-vous que le client a la clé privée (Peut-être que vous utilisez des clés différentes avec votre code et gpg4win)
  • Le client peut gérer la méthode de cryptage à tous? C'est à dire. le client sait-il comment décrypter le format de message que vous avez envoyé? (Je n'ai aucune expérience avec Globalscape)
+0

Oui, le client peut décrypter automatiquement et automatiquement les fichiers qui ont été cryptés même clé publique lorsque le cryptage a été fait en utilisant Gpg4win (ou plus précisément, Kleopatra). – Ash

+0

Pouvez-vous déchiffrer les fichiers que vous créez avec gpg ou gpg4win? – Jens