Hi!
~~~

On 01/10/2012 05:53 AM, Sean Colyer wrote:
> A couple of thoughts/questions so far:
>
>     * When the framework creates errors/messages it often contains some HTML 
> formatting.  I think we need to consider a different way of logging, perhaps 
> an object that contains the message, or some code for a message, and then 
> formatting could be a different value for that object?
>

Good idea. I only added HTML formatting to have it in gpg4browsers. For using 
util.print_* it is necessary to have the function showMessages(html) defined on 
the page. I think it would be a good approach to extend this and to add a type 
which message is transmitted to the "to be implemented" function (e.g. 
showMessages(type [debug,info,warn,error], string text)).

>     * There seems to be a number of places where when parsing/reading keys we 
> return an array but I'm not sure when they would be useful? There seems to be 
> a lot of priv_key[0] or similar for public keys.  I couldn't think of a good 
> use case for these off the top of my head, but I could easily be overlooking 
> something.
>

Well, in some cases it is an array because key ids are not representing the 
identity of the key so multiple keys can exist with the same keyid. In other 
cases it is like that because exported public key blocks (e.g. 
openpgp.read_privateKey function) can contain several public keys in one block.

>     * When retrieving keys from they keystore, I think they should be in the 
> same format as what would be returned from an openpgp.read_privateKey (or 
> publicKey).  Any reason not to change it to work that way?
>

No. Please go ahead.

>     * I'm planning on adding Fortuna based key generation (probably based off 
> of the implementation here: https://github.com/wxfz/fortuna). I'm thinking 
> the best way to do this is basically to use some of the existing methods to 
> create an armored text and then re-read  that in using the existing openpgp 
> calls. Thoughts?
>

Hmm. I don't understand this. Why creating armored text and doing a re-read? 
For generating keys all functions required are present: The BigInteger lib 
(jsbn) provides all prime check functions required. The 
window.crypto.getRandomBytes() function provides secure random. All we need to 
do is to implement a write_packet function to write a key into openpgp packets 
and three gen_key functions (or a openpgp.packet.keymaterial.create_key(algo, 
size) function) in rsa.js, dsa.js and elgamal.js.

If you want to introduce a PRNG into openpgpjs it would be great too. On 
browsers where window.crypto.* is currently not supported an entropy gathering 
daemon using a prng could be implemented. Therefor the 
openpgp.crypto.openpgp_crypto_getSecureRandom()  / 
openpgp.crypto.openpgp_crypto_getSecureRandomOctect() must be adjusted. To 
choose a good PRNG system is another task a crypto expert should do. Check out: 
http://baagoe.com/en/RandomMusings/javascript/.

> Again, we've made great strides so far, and I'm hoping we can continue that 
> moving forward.

Me too.


best regards,
carsten

_______________________________________________

http://openpgpjs.org

Reply via email to