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