Thank you Tio! your response is always appreciated. On Thu, Jan 7, 2016 at 5:41 PM, Tio Oscar <[email protected]> wrote:
> > > El jue., 7 de ene. de 2016 a la(s) 21:22, Andrew <[email protected]> > escribió: > >> Please note I'm using 2 different functions getKeyId() >> and getKeyIds()......... >> >> calling getKeyIds() on either the public or private Key gives me 2 keys >> (in array) ( pubKey.getKeyIds()[0].toHex(); +' >> '+pubKey.getKeyIds()[1].toHex() ) - the first key [0] is the PublicKeyId. >> >> calling getKeyId() - pubKey.primaryKey.getKeyId().toHex() on the public >> or private key EQUALS pubKey.getKeyIds()[0].toHex() - which is the >> PublicKeyId >> >> If I run this on encrypted message: >> pgpmessage = openpgp.message.readArmored(pgpmessage); >> pgpmessage.packets[0]['publicKeyId'].toHex() >> >> it returns the same key as pubKey.getKeyIds()[1].toHex() does on public >> or private key. >> >> Am I correct in assuming this ( pubKey.getKeyIds()[1].toHex() ) is the >> subKeyId ? it is the only common identifier that is the same in public key, >> private key or encrypted message. >> >> > Yes, the key id obtain from the ecrypted message are the subkey id. > You need to consider the order of the packets are not important, you need > to find the packets with the type ciphered data (or some else). > > Consider the ciphered messages can has various encripted packets for > various keys, and a key (Public or private) can has various subkeys. > > If you need to know with which key you can decrypt a message, you have to > search all keys from de message on all subkeys on your private keys. > > I've tried this on numerous openpgp keys and encrypted messages with the >> same result. >> >> What I find hard to understand is why >> pgpmessage.packets[0]['publicKeyId'].toHex() returns this key as packets[0] >> clearly shows this as ]['publicKeyId']. >> when in fact it's not the PublicKeyId, could it be the subKeyId ?? >> > > Exactly. > > Sorry my poor english, If there are anything you do not understand what I > wrote please tell me. > > > >> >> >> >> >> >> On Thu, Dec 17, 2015 at 5:14 PM, Andrew <[email protected]> wrote: >> >>> I'm getting the publicKeyId from the Public Key with this function: >>> which ties with the signature correctly. >>> function findkeyid(){ >>> var openpgp = window.openpgp; >>> var testPublicKey = sessionStorage.getItem('testPublicKey'); >>> var foundKeys = openpgp.key.readArmored(testPublicKey).keys; >>> if (!foundKeys || foundKeys.length !== 1) { >>> throw new Error("Key not readed, or more than one key"); >>> } >>> var pubKey = foundKeys[0]; foundKeys = null; >>> var getKeyId = function (key) { >>> return key.primaryKey.getKeyId().toHex(); >>> } >>> console.log('publicKeyId '+getKeyId(pubKey)); >>> } >>> >>> I'm a bit confused by your "PGP key" what is that? >>> >>> I was hoping that I could extract the publicKeyId from the message and >>> use that to determine what public Key was used to encrypt the message - >>> this assumes I have several public keys etc. >>> >>> On Thu, Dec 17, 2015 at 4:39 PM, Tio Oscar <[email protected]> wrote: >>> >>>> By other hand, 6F9AE3EF7B6DB9C8 is the keyId of the public key, not the >>>> PGP key, it's "F2F3C0463B4D9830", you need to obtain the keyId from >>>> key.primaryKey. >>>> >>>> >>>> >>>> El jue., 17 de dic. de 2015 a la(s) 20:29, Tio Oscar <[email protected]> >>>> escribió: >>>> >>>>> There is not wrong, the key fingerprint isn't the keyId, the keyID are >>>>> the las 8 octets of the fingerprint. >>>>> >>>>> 3.3 <https://tools.ietf.org/html/rfc4880#section-3.3>. Key IDs >>>>> >>>>> A Key ID is an eight-octet scalar that identifies a key. >>>>> Implementations SHOULD NOT assume that Key IDs are unique. The >>>>> section "Enhanced Key Formats" below describes how Key IDs are >>>>> formed. >>>>> >>>>> >>>>> >>>>> https://tools.ietf.org/html/rfc4880#section-3.3 >>>>> >>>>> In hex, how is represented, are 16 chars (2 char by octet), the keyId >>>>> are correct. >>>>> >>>>> El jue., 17 de dic. de 2015 a la(s) 19:43, Andrew <[email protected]> >>>>> escribió: >>>>> >>>>>> Hi Tio, >>>>>> >>>>>> -----BEGIN PGP PUBLIC KEY BLOCK----- >>>>>> Version: OpenPGP.js v1.3.0 >>>>>> Comment: http://openpgpjs.org >>>>>> >>>>>> xsBNBFZwoBwBCADbTO4n8WRnG1ktQUZLJYgsC4cVy70BHyotHl6wpAGLirpb >>>>>> HZ2erWLk5u4B5hdNTR3ZF5YLgE9EymgUh42BRt4786MuXplHLw/JplGpCL6t >>>>>> 9eXSzlSlUrbQ6oOTt18vA8fCvEy7guXw+G3ez/f2GfLgOGi2dCgNWUAuY8Zy >>>>>> vRpHAnrdhXd8btAOHba15XD9fxUqw+vbf7a9V+vj2/bTBhlEUCbfozcUl/qs >>>>>> 2F3PG3CZnuoznMoJuqHcTnL3vs6DCxBjyi6DnLVL6yHeJ7rCLf5agK6ZTfXs >>>>>> WOOik5X6ZJgROnRYrm7GodbHlQH//5Kir3uG+7rCILGEzZTU3adbm5rrABEB >>>>>> AAHNEjxhZzU3NDNAZ21haWwuY29tPsLAcgQQAQgAJgUCVnCgIQYLCQgHAwIJ >>>>>> EPLzwEY7TZgwBBUIAgoDFgIBAhsDAh4BAAAuzwgAibMW3hEGR5c+3VhhJ3S2 >>>>>> 7lF7XKjFKyduEt5AoYjONEpO3YQZtJNal3lMnQqyFSnZEPLH5TtKI8i0K/+1 >>>>>> 8QahJdmC3PDKfeP/ecx8QVtFMb6zk60AdcGLd4v6/rUpAI9mw0rSMZuoAtoq >>>>>> IkO3tYZkqP0cbl+8VCO6NhP80njFA5gWJDWxkBNqh7OKm8l9aXInmzo7NlCv >>>>>> 1jU6nsrRdVQlV8VNEFQXjtkqOocgioN0+pHHnwYoaMQGHVmUowve1o/vJUwr >>>>>> V3L3kOLoPPZl1Zo4JSH7QLDgCPt2Igiu/tCSVDwiD1rTFPNwrKfsq7j5bSGm >>>>>> bjLDEnXj/CGP+qD7ReTsec7ATQRWcKAcAQgAp5tthNvTjjdkx7WEfWFaGJPt >>>>>> 0xrqsXmhIYoyHfhyg9AZGe7WKivIBgm4kUoQ4pHpdBtL0YzeZzGfIt4X2yz3 >>>>>> ysySf6YHzrt6R7O/8MOWnCK92XU2Nz6fj9ecr3QkCy9Kv/XKUzainftdec+Q >>>>>> tVe/edts6/lPhsc8mGIpjDdEBwg67iU/FSsTtl+LnQ7LuX2GyMii5FeJrSQu >>>>>> KQco7MISVT2WxtSOMXRZcsu5NIOgNZa1BwEaUBaZJMy+kA7IbcmDj30oI3KD >>>>>> 0nb5xmN8XG24s71wkyOGdZcnpu4hHzL3fhdmfK0M7iWYNYnxylEsiIZCYGna >>>>>> JKtZfV8U7Rs0Sy+DmQARAQABwsBfBBgBCAATBQJWcKAhCRDy88BGO02YMAIb >>>>>> DAAAaLYH/1QOKW6xMV4u3f+wY2gMV++UqNrUjJUJqSfkbyASsmZ0Oa0CMpYi >>>>>> 9/tE1W9/4ti8/z9RZ/i6qqeP+HhL1McnoOE38lXEYRiaw9SEMIrz79OL7+4c >>>>>> VEOQOBUQn69G7Rc6LI0xzABnzHlHz0W5UnlVZhYiQDcm4B1dJVyyXbhwdJ7Q >>>>>> xVy4pmwe6cn19I4P0o5WFEKE5RIgc7ZvRGjVHWoEhe8sc6wijlNLc4wFzTwt >>>>>> tARzaRTTYaQoy3LiCTCpJyJZGCxjPYeTh2GDQGWvOZVay89FzJypRN9zxOp1 >>>>>> rwjp1g7s9qqQRhVzoMAtQgzeenkIgmZkQyd6Ba12UmNiszhRPP0= >>>>>> =wLZD >>>>>> -----END PGP PUBLIC KEY BLOCK----- >>>>>> >>>>>> >>>>>> my public key signature is: 04f4d2ee95856f1d3e48aebcf2f3c0463b4d9830 >>>>>> >>>>>> using console.log(pgpMessage.packets[0].publicKeyId.toHex() ); I >>>>>> get: 6f9ae3ef7b6db9c8 >>>>>> >>>>>> the message: >>>>>> >>>>>> -----BEGIN PGP MESSAGE----- >>>>>> Version: OpenPGP.js v1.3.0 >>>>>> Comment: http://openpgpjs.org >>>>>> >>>>>> wcBMA2+a4+97bbnIAQf/aHclrmHwOXdRIhiM32zjiC+8dM+IXZPfRAJXHfbr >>>>>> TeTtO5bxBIP83Hv+Ytk5mL89TYWvhgpcG0YxV8rBtb4xSipK6N26cG6vpF1V >>>>>> YngsjKLZ4niW0TvP9fy9bkkYjXMd+RdQq2t27X9xbMUSHTzGsl9EKYy1P3ZW >>>>>> YxuB2Zpqm0tzQTU6eMkdbA3tAaw3JbUfUK1OyDBEeSO5X3MPFH4ftaxcWFUV >>>>>> pysv7xm4IErSjMlhHu602ShQpg6HZe6768pbe4xWC4fZcSZQ/tlVNpyPLw0O >>>>>> /WsBRe9KHKmfEfiuY+wRF9f0Ky73zeEEm0rUKA+KB2ycpjUYtzXDZrP/jLtX >>>>>> 1dJMAe5ymyUNG7heZHaRvcB7mc4yMyNKMgrN6rAmPqDgMx8RFe7imq/wQ3yS >>>>>> 0feZoTDximM69wWz71IQfpBza+NJJIj52WQI01Go/jU7HQ== >>>>>> =rIyN >>>>>> -----END PGP MESSAGE----- >>>>>> >>>>>> any idea why the keyId is wrong? >>>>>> >>>>>> On Thu, Dec 17, 2015 at 3:01 PM, Tio Oscar <[email protected]> wrote: >>>>>> >>>>>>> There is not docunented, but there are a method called toHex: >>>>>>> >>>>>>> >>>>>>> Keyid.prototype.toHex = function() { return >>>>>>> util.hexstrdump(this.bytes);}; >>>>>>> >>>>>>> In your case: >>>>>>> >>>>>>> console.log(pgpMessage.packets[0].publicKeyId.toHex() ); >>>>>>> >>>>>>> El jue., 17 de dic. de 2015 a la(s) 18:03, Andrew <[email protected]> >>>>>>> escribió: >>>>>>> >>>>>>>> I am trying to get the publicKeyId from the encrypted message. >>>>>>>> >>>>>>>> pgpMessage = openpgp.message.readArmored(pgpMessage); >>>>>>>> >>>>>>>> console.log( JSON.stringify( pgpMessage ) ) >>>>>>>> returns: >>>>>>>> >>>>>>>> >>>>>>>> {"packets":{"0":{"tag":1,"version":3,"publicKeyId":{"bytes":"ošãï{m¹È"},"publicKeyAlgorithm":"rsa_encrypt_sign","sessionKey":null,"sessionKeyAlgorithm":"aes256","encrypted":[{"data": >>>>>>>> >>>>>>>> console.log( JSON.stringify( >>>>>>>> pgpMessage['packets'][0]['publicKeyId']['bytes'] ) ); >>>>>>>> returns: >>>>>>>> >>>>>>>> "ošãï{m¹È" >>>>>>>> >>>>>>>> does this - "bytes" represent the publicKeyId and if so how do I >>>>>>>> convert it into a format that I can compare with the actual publicKeyId >>>>>>>> associated with the publicKey used for encryption? >>>>>>>> >>>>>>>> thanks. >>>>>>>> >>>>>>>> _______________________________________________ >>>>>>>> >>>>>>>> http://openpgpjs.org >>>>>>>> Subscribe/unsubscribe: http://list.openpgpjs.org >>>>>>> >>>>>>> >>>>>>> _______________________________________________ >>>>>>> >>>>>>> http://openpgpjs.org >>>>>>> Subscribe/unsubscribe: http://list.openpgpjs.org >>>>>>> >>>>>> >>>>>> _______________________________________________ >>>>>> >>>>>> http://openpgpjs.org >>>>>> Subscribe/unsubscribe: http://list.openpgpjs.org >>>>> >>>>> >>>> _______________________________________________ >>>> >>>> http://openpgpjs.org >>>> Subscribe/unsubscribe: http://list.openpgpjs.org >>>> >>> >>> >> _______________________________________________ >> >> http://openpgpjs.org >> Subscribe/unsubscribe: http://list.openpgpjs.org > > > _______________________________________________ > > http://openpgpjs.org > Subscribe/unsubscribe: http://list.openpgpjs.org >
_______________________________________________ http://openpgpjs.org Subscribe/unsubscribe: http://list.openpgpjs.org

