Re: "key" argument of BcPublicKeyDataDecryptorFactory.createDataDecryptor()

Florian Best <[email protected]> Fri, 19 Oct 2018 18:56:25 +0200
Newsgroups gmane.comp.encryption.bouncy-castle.devel
Message-ID <[email protected]>
Thank you Bernd!
I still don't understand it fully but at least I solved my problem :-)

Am 19.10.2018 um 17:38 schrieb Eckenfels. Bernd:
>
> You can run it through gpg –list-packets:
>
>  
>
> # off=0 ctb=84 tag=1 hlen=2 plen=140
>
> :pubkey enc packet: version 3, algo 1, keyid 7E52FDEBE9C03D1E
>
>         data: [1024 bits]
>
> # off=142 ctb=85 tag=1 hlen=3 plen=270
>
> :pubkey enc packet: version 3, algo 16, keyid 5B5BDB29D25832BA
>
>         data: [1023 bits]
>
>         data: [1022 bits]
>
> # off=415 ctb=c9 tag=9 hlen=2 plen=43 new-ctb
>
> :encrypted data packet:
>
>         length: 43
>
>  
>
> The encrypted data is encrypted with a session key and that key is
> encrypted with a RSA and an ELG key. This would be the actual key you
> need to give to PGPDataDecryptor, however you don’t do that normally*
> yourself, instead you would normally set the Factory for it on one of
> the  PublicKeyEnctrypted Data packets you have actually the key for.
> See for example
> https://github.com/bcgit/bc-java/blob/master/pg/src/main/java/org/bouncycastle/openpgp/examples/KeyBasedFileProcessor.java#L122
>
>  
>
> Gruss
>
> Bernd
>
>  
>
> * reasons could be if you remember the key for some reason
>
>  
>
>  
>
>  
>
> *Von:*Florian Best <[email protected]>
> *Gesendet:* Freitag, 19. Oktober 2018 17:19
> *An:* [email protected]
> *Betreff:* Re: [dev-crypto] "key" argument of
> BcPublicKeyDataDecryptorFactory.createDataDecryptor()
>
>  
>
> Oh, P.S.:
>
> What I so far reverse engineerd is that depending on the encAlgorithm,
> the key needs to be e.g. 16 bytes long.
> A fingerprint is usually 16 bytes long when represented in hex.
>
> I would expect that the required arguments for createDataFactory() are
> encoded in a PGP message and there is a method in BC which creates the
> values automatically.
>
> e.g. I have the following message:
> XXX
>
> When base64 decode this, it starts with
> "\x84\x8c\x03~R\xfd\xeb\xe9\xc0=\x1e" which is basically 2 bytes (I
> still have to find out it's meaning, probably it contains the
> encAlgorithm), version=3, and the fingerprint 0x7E52FDEBE9C03D1E of
> the used public key in big-endian unsigned long long format. I guess
> the rest of the message is the encrypted data?
>
> Thanks for helping!
> Florian
> (Now I continue reading https://tools.ietf.org/html/rfc4880)...
>
> Am 19.10.2018 um 16:56 schrieb Florian Best:
>
>     Hi folks!
>
>     As I found no clear information on my problem, neither in the API
>     docs nor in the source code itself, I have to ask here:
>
>     I don't understand the argument "key" of
>     BcPublicKeyDataDecryptorFactory.createDataDecryptor()
>     https://www.bouncycastle.org/docs/pgdocs1.5on/org/bouncycastle/openpgp/operator/bc/BcPublicKeyDataDecryptorFactory.html#createDataDecryptor-boolean-int-byte:A-
>
>     public PGPDataDecryptor
>     <https://www.bouncycastle.org/docs/pgdocs1.5on/org/bouncycastle/openpgp/operator/PGPDataDecryptor.html> createDataDecryptor(boolean withIntegrityPacket,
>
>                                                 int encAlgorithm,
>
>                                                 byte[] key)
>
>      
>
>     |key| - the bytes of the key for the cipher.
>
>      
>
>     Is "key" the public key, private key, fingerprint or key-id or
>     even something else?
>     I tried all the combinations but cannot decrypt a message.
>
>     I hope someone can help me there!
>
>     Best regards
>     Florian
>
>  
>
>
>
>
>
>
>   	  	 
>
>
>
> *SEEBURGER AG* 	  	Vorstand/SEEBURGER Executive Board:
> Sitz der Gesellschaft/Registered Office: 	  	Axel Haas, Michael
> Kleeberg, Axel Otto, Dr. Martin Kuntz, Matthias Feßenbecker
> Edisonstr. 1 	  	
> D-75015 Bretten 	
> 	Vorsitzende des Aufsichtsrats/Chairperson of the SEEBURGER
> Supervisory Board:
> Tel.: 07252 / 96 - 0 	
> 	Prof. Dr. Simone Zeuchner
> Fax: 07252 / 96 - 2222 	
> 	
> Internet: http://www.seeburger.de 	
> 	Registergericht/Commercial Register:
> e-mail: [email protected] 	
> 	HRB 240708 Mannheim
>
>
> Dieses E-Mail ist nur für den Empfänger bestimmt, an den es gerichtet
> ist und kann vertrauliches bzw. unter das Berufsgeheimnis fallendes
> Material enthalten. Jegliche darin enthaltene Ansicht oder
> Meinungsäußerung ist die des Autors und stellt nicht notwendigerweise
> die Ansicht oder Meinung der SEEBURGER AG dar. Sind Sie nicht der
> Empfänger, so haben Sie diese E-Mail irrtümlich erhalten und jegliche
> Verwendung, Veröffentlichung, Weiterleitung, Abschrift oder jeglicher
> Druck dieser E-Mail ist strengstens untersagt. Weder die SEEBURGER AG
> noch der Absender (Eckenfels. Bernd) übernehmen die Haftung für Viren;
> es obliegt Ihrer Verantwortung, die E-Mail und deren Anhänge auf Viren
> zu prüfen.
>
> This email is intended only for the recipient(s) to whom it is
> addressed. This email may contain confidential material that may be
> protected by professional secrecy. Any fact or opinion contained, or
> expression of the material herein, does not necessarily reflect that
> of SEEBURGER AG. If you are not the addressee or if you have received
> this email in error, any use, publication or distribution including
> forwarding, copying or printing is strictly prohibited. Neither
> SEEBURGER AG, nor the sender (Eckenfels. Bernd) accept liability for
> viruses; it is your responsibility to check this email and its
> attachments for viruses.
>