1
0
forked from aniani/vim
Files
vim/src/testdir/test71.in
Bram Moolenaar 8f4ac01544 updated for version 7.4.399
Problem:    Encryption implementation is messy.  Blowfish encryption has a
            weakness.
Solution:   Refactor the encryption, store the state in an allocated struct
            instead of using a save/restore mechanism.  Introduce the
            "blowfish2" method, which does not have the weakness and encrypts
            the whole undo file. (largely by David Leadbeater)
2014-08-10 13:38:34 +02:00

95 lines
1.7 KiB
Plaintext

Test for encryption.
The test data is in another file to avoid problems with 'encoding', especially
cp932.
STARTTEST
:so small.vim
:set enc=latin1
:bwipe!
:r test71a.in
:/^start of text/+1
:let text_lines = getline('.', line('.') + 2)
:/^start of cm=zip bytes/+1
:let cm0_bytes = getline('.', '.')
:/^start of cm=blowfish bytes/+1
:let cm1_bytes = getline('.', '.')
:/^start of cm=blowfish2 bytes/+1
:let cm2_bytes = getline('.', '.')
:bwipe!
:call append(0, text_lines)
:$d
:X
foobar
foobar
:w! Xtestfile
:bwipe!
:e Xtestfile
foobar
:let cm0_read_back = getline('.', '$')
:set key=
:set cryptmethod=blowfish
:" If the blowfish test fails 'cryptmethod' will be 'zip' now.
:%s/^/\=&cryptmethod == 'blowfish' ? "OK " : "blowfish test failed "/
:X
barfoo
barfoo
:w! Xtestfile
:bwipe!
:e Xtestfile
barfoo
:let cm1_read_back = getline('.', '$')
:set key=
:set cryptmethod=blowfish2
:" If the blowfish test fails 'cryptmethod' will be 'zip' now.
:%s/^/\=&cryptmethod == 'blowfish2' ? "OK " : "blowfish test failed "/
:X
bar2foo
bar2foo
:w! Xtestfile
:bwipe!
:e Xtestfile
bar2foo
:let cm2_read_back = getline('.', '$')
:bwipe!
:set bin noeol key=
:call append(0, cm0_bytes)
:$d
:set fenc=latin1
:w! Xtestfile
:bwipe!
:set nobin
:e Xtestfile
foofoo
:let cm0_read_bin = getline('.', '$')
:bwipe!
:set bin noeol key=
:call append(0, cm1_bytes)
:$d
:set fenc=latin1
:w! Xtestfile
:bwipe!
:set nobin
:e Xtestfile
barbar
:let cm1_read_bin = getline('.', '$')
:bwipe!
:set bin noeol key=
:call append(0, cm2_bytes)
:$d
:set fenc=latin1
:w! Xtestfile
:bwipe!
:set nobin
:e Xtestfile
barburp
:call append(0, cm1_read_bin)
:call append(0, cm0_read_bin)
:call append(0, cm2_read_back)
:call append(0, cm1_read_back)
:call append(0, cm0_read_back)
:set key= fenc=latin1
:w! test.out
:qa!
ENDTEST