Mosh wrote:

> Dominique,
> Resending as a zip file.
> thanks,
> mohsin

Hi Mosh,

I tried your blowfish patch today. Here are some remarks.

The patch is missing the changes to the Makefile (I needed
to add blowfish.c & sha2.c to the Makefile to be able to link
successfully).

I compiled with -g -O0 -Wall -Wmissing-prototypes and I see compilation
warnings:

blowfish.c:34: warning: missing braces around initializer
blowfish.c:34: warning: (near initialization for ‘sbi[0]’)
blowfish.c: In function ‘bf_key_init’:
blowfish.c:271: warning: pointer targets in passing argument 1 of
‘strlen’ differ in signedness
/usr/include/string.h:397: note: expected ‘const char *’ but argument
is of type ‘const unsigned char *’
blowfish.c: At top level:
blowfish.c:334: warning: missing braces around initializer
blowfish.c:334: warning: (near initialization for ‘bft[0]’)
blowfish.c: In function ‘bf_self_test’:
blowfish.c:347: warning: pointer targets in passing argument 1 of
‘bf_key_init’ differ in signedness
blowfish.c:267: note: expected ‘const unsigned char *’ but argument is
of type ‘char *’
blowfish.c: At top level:
blowfish.c:233: warning: ‘bf_d_block’ defined but not used


sha2.c:178:9: warning: multi-character character constant
sha2.c:180:9: warning: multi-character character constant
sha2.c:686: warning: no previous prototype for ‘int2chars’
sha2.c: In function ‘sha2_key’:
sha2.c:732: warning: pointer targets in return differ in signedness
sha2.c:733: warning: pointer targets in passing argument 1 of ‘strcmp’
differ in signedness
/usr/include/string.h:142: note: expected ‘const char *’ but argument
is of type ‘const unsigned char *’
sha2.c:741: warning: pointer targets in passing argument 1 of ‘strlen’
differ in signedness
/usr/include/string.h:397: note: expected ‘const char *’ but argument
is of type ‘const unsigned char *’
sha2.c: At top level:
sha2.c:789: warning: missing braces around initializer
sha2.c:789: warning: (near initialization for ‘sht[0]’)
sha2.c: In function ‘sha2_self_test’:
sha2.c:803: warning: pointer targets in assignment differ in signedness
sha2.c:804: warning: pointer targets in passing argument 1 of ‘strlen’
differ in signedness
/usr/include/string.h:397: note: expected ‘const char *’ but argument
is of type ‘unsigned char *’




fileio.c: In function ‘check_for_cryptkey’:
fileio.c:2824: warning: pointer targets in passing argument 1 of
‘is_crypt_sig’ differ in signedness
fileio.c:2801: note: expected ‘char *’ but argument is of type ‘char_u *’
fileio.c: In function ‘buf_write’:
fileio.c:4264: warning: pointer targets in passing argument 1 of
‘bf_ofb_init’ differ in signedness
blowfish.h:12: note: expected ‘const unsigned char *’ but argument is
of type ‘char *’
fileio.c:4270: warning: pointer targets in assignment differ in signedness


When I run Ex command  ":X"  I get the error:

   E000: bf_self_test() failed<00>

So something is broken for me (I'm using Vim-7.2.402 on Linux x86).
":X" worked before the patch.

I'm not sure why <00> appears at the end of the error message.

Instead of using EMSG2(...) for E000, you can use EMSG(...) since
there is only 1 argument.

Despite the E000 error, Vim still encrypts the file with VimCrypt~02 in
the header.  When I open the encrypted file, Vim asks for the key and
it then decrypts the file correctly.  So maybe only the self test is wrong.

I see a typo in comment at blowfish.c:350 (resuse -> reuse)

Global variable 'bft' at blowfish.c:333 could be local to function
bf_self_test()

Global variables in fileio.c  CRYPT_MAGIC, CRYPT_MAGIC_LEN (etc)
could be declared static.

Following the Vim coding style (see ":help coding-style") would
help to accept the patch (placement of curly braces, etc.)

It would be worth including a documentation patch as well.

Open questions:

Should code be in something like #ifdef FEAT_BLOWFISH. Right
now blowfish code is in #ifdef FEAT_CRYPT (which is enabled when
building vim with configure ---with-features=normal).

Should ":X" command have an argument to chose the encryption
algorithm?  (blowfish or the older algorithm).

Cheers
-- Dominique

-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

To unsubscribe from this group, send email to 
vim_dev+unsubscribegooglegroups.com or reply to this email with the words 
"REMOVE ME" as the subject.

Raspunde prin e-mail lui