Or just: var reEmptyLine = /^\s*$/;
----- Original Message ----- | From: "Robert B. Nelson" <[email protected]> | To: "OpenPGP.js Mailing List" <[email protected]> | Sent: Wednesday, April 9, 2014 9:45:24 AM | Subject: Re: [openpgpjs] openpgpjs read signature block & binary signing | | It should be | | var reEmptyLine = /^[\t ]*\n/m; | | or maybe | | var reEmptyLine = /^[\t ]*$/; | | | ----- Original Message ----- | | From: "Tim Prepscius" <[email protected]> | | To: "OpenPGP.js Mailing List" <[email protected]> | | Sent: Wednesday, April 9, 2014 9:37:33 AM | | Subject: Re: [openpgpjs] openpgpjs read signature block & binary signing | | | | poss: var reEmptyLine = /^\s*?\n/m; | | | | On 4/9/14, Tim Prepscius <[email protected]> wrote: | | > I believe: | | > | | > function splitHeaders(text) { | | > var reEmptyLine = /^\s*\n/m; | | > var headers = ''; | | > var body = text; | | > | | > var matchResult = reEmptyLine.exec(text); | | > | | > if (matchResult !== null) { | | > headers = text.slice(0, matchResult.index); | | > body = text.slice(matchResult.index + matchResult[0].length); | | > | | > is the offending code: | | > | | > the var reEmptyLine = /^\s*\n/m; | | > | | > is matching multiple empty lines, however it should just match one. | | > | | > On 4/9/14, Tim Prepscius <[email protected]> wrote: | | >> I'm sorry to say I'm bringer of more bugs. Please don't hate me. ;-) | | >> | | >> Openpgpjs is not retaining extra newlines at the beginning (and | | >> possibly end) of a message. | | >> | | >> http://pastebin.com/raw.php?i=evxQULSE | | >> | | >> fails, but it should succeed. | | >> I'm making a workaround. | | >> | | >> | | >> Also, if I have a message which I have read (like the paste bin above) | | >> and then ask openpgpjs to write out the armored version, it does not | | >> place the correct SHA1, but instead changes it to SHA256. I don't | | >> actually do this, so I'm not concerned about it, but it may point to a | | >> bug somewhere else. | | >> | | >> | | >> | | >> -tim | | >> | | >> On 4/8/14, Tim Prepscius <[email protected]> wrote: | | >>> Also, I'm having to compensate for lots of "unescapes" \r\n in general. | | >>> It would be nice if they happened only one place (before checking a | | >>> signature, or something like that). | | >>> | | >>> | | >>> For instance, the decompressing process looks like this: | | >>> | | >>> }, c.prototype.decompress = function() { | | >>> var a, b; | | >>> switch (this.algorithm) { | | >>> case "uncompressed": | | >>> a = this.compressed; | | >>> break; | | >>> case "zip": | | >>> compData = this.compressed, b = | | >>> f.encode(compData).replace(/\n/g, ""); | | >>> var c = new | | >>> e.Util.Unzip(e.Util.Base64.decodeAsArray(b)); | | >>> a = unescape(c.deflate()[0][0]); | | >>> break; | | >>> case "zlib": | | >>> | | >>> | | >>> | | >>> that: | | >>> a = unescape(c.deflate()[0][0]); | | >>> | | >>> is causing signatures to fail. | | >>> | | >>> Anyhowz, keep up good work, will substitute a decompress function. | | >>> | | >>> -tim | | >>> | | >>> | | >>> On 4/7/14, Tim Prepscius <[email protected]> wrote: | | >>>> Just so you know, I believe you will need to make another change. | | >>>> (I think) | | >>>> | | >>>> When I look at the minified with Chrome, I see the verify function | | >>>> calls "setText" on a "Literal"... | | >>>> | | >>>> that "setText" code also removes \r | | >>>> so even if the message is "fromBinary" (unless there is some mechanism | | >>>> in the code I don't know), the msg.verify ?might? still fail? | | >>>> | | >>>> Anyhowz, | | >>>> | | >>>> looking forward to next version, | | >>>> | | >>>> -tim | | >>>> | | >>>> On 4/7/14, Thomas Oberndörfer <[email protected]> wrote: | | >>>>> I see, this scenario is currently not supported. | | >>>>> You are having a binary and signature packets as base64. | | >>>>> | | >>>>> First we would need to expose the base64 module to openpgp namespace. | | >>>>> Then you could do something like: | | >>>>> | | >>>>> - create message msg with openpgp.message.fromBinary(binary) | | >>>>> - decode base64 signatures, read result into new packetlist | | >>>>> - concat signature packetlist to msg.packets | | >>>>> - call msg.verify... | | >>>>> | | >>>>> Thomas | | >>>>> | | >>>>> On Mon, Apr 7, 2014 at 4:38 PM, Tim Prepscius | | >>>>> <[email protected]> | | >>>>> wrote: | | >>>>>> Here's my work around, it shows the difficulties I'm having. | | >>>>>> | | >>>>>> (I'd copy-paste,but i think the formatting is going to come through | | >>>>>> even more badly) | | >>>>>> | | >>>>>> http://pastebin.com/raw.php?i=AJUHtyzH | | >>>>>> | | >>>>>> -tim | | >>>>>> | | >>>>>> | | >>>>>> On 4/7/14, Thomas Oberndörfer <[email protected]> wrote: | | >>>>>>>> 1. Can openpgpjs read a signature directly? | | >>>>>>> | | >>>>>>> Here is an example: | | >>>>>>> https://github.com/openpgpjs/openpgpjs/blob/master/test/general/signature.js#L472 | | >>>>>>> | | >>>>>>>> 2. Can openpgjs handle binary signatures? | | >>>>>>> | | >>>>>>> You could do: | | >>>>>>> | | >>>>>>> openpgp.message.fromBinary('\r').sign(... | | >>>>>>> | | >>>>>>> Or what is your exact use case? | | >>>>>>> | | >>>>>>> Thomas | | >>>>>>> | | >>>>>>> | | >>>>>>> On Mon, Apr 7, 2014 at 4:08 AM, Tim Prepscius | | >>>>>>> <[email protected]> | | >>>>>>> wrote: | | >>>>>>>> I just wanted to check to make sure I've not overlooked it: | | >>>>>>>> | | >>>>>>>> 1. Can openpgpjs read a signature directly? | | >>>>>>>> (I haven't found it, and am using this kludge | | >>>>>>>> | | >>>>>>>> // i'm having problems getting the signature with | | >>>>>>>> openpgpjs, so I | | >>>>>>>> make a fake message and | | >>>>>>>> // then get the signature from that | | >>>>>>>> | | >>>>>>>> var armoredText = "-----BEGIN PGP SIGNED | | >>>>>>>> MESSAGE-----\n\n" | | >>>>>>>> + data[1]; | | >>>>>>>> var input = | | >>>>>>>> window.openpgp.armor.decode(armoredText); | | >>>>>>>> var packetlist = new window.openpgp.packet.List(); | | >>>>>>>> packetlist.read(input.data); | | >>>>>>>> | | >>>>>>>> ) | | >>>>>>>> | | >>>>>>>> | | >>>>>>>> 2. Can openpgjs handle binary signatures? | | >>>>>>>> | | >>>>>>>> Actually I sort of know that it can't. Or, any signature that | | >>>>>>>> requires the \r. -- And have done a work around. Is a bug for | | >>>>>>>> that | | >>>>>>>> somewhere I can put myself as a watcher? I'd like to eventually | | >>>>>>>> remove my work-around. | | >>>>>>>> | | >>>>>>>> -tim | | >>>>>>>> _______________________________________________ | | >>>>>>>> | | >>>>>>>> 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

