Hi Bram and Tyru! 2013/1/9(Wed) 5:24:42 UTC+9 Bram Moolenaar: > Tyru wrote: > > > > > Here is a patch to add sha256({string}) function, > > > which returns SHA256 checksum of {string}. > > > > > > To be honest, I don't know this patch is useful. > > > because I've never had a time to use SHA256 checksum in my vim plugins. > > > but adding sha256() function is quite easy > > > because SHA256 implementation (sha256.c) already exists in Vim source code. > > > so I suggest to add this function and we can use it from vimscript. > > > > Thanks. I'll add a note in the todo list. > > > > Please also update the documentation. And a simple test would be good > > too.
I wrote a test. Please check this. (This patch includes only test code.) Best Regards, Hirohito Higashi -- -- 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 --- You received this message because you are subscribed to the Google Groups "vim_dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to vim_dev+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
diff -r 274c841f033a src/testdir/Makefile --- a/src/testdir/Makefile Fri Jan 25 20:11:01 2013 +0100 +++ b/src/testdir/Makefile Mon Jan 28 01:07:47 2013 +0900 @@ -27,7 +27,8 @@ test69.out test70.out test71.out test72.out test73.out \ test74.out test75.out test76.out test77.out test78.out \ test79.out test80.out test81.out test82.out test83.out \ - test84.out test85.out test86.out test87.out test88.out + test84.out test85.out test86.out test87.out test88.out \ + test89.out SCRIPTS_GUI = test16.out diff -r 274c841f033a src/testdir/test89.in --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/testdir/test89.in Mon Jan 28 01:07:47 2013 +0900 @@ -0,0 +1,53 @@ +Tests for sha256() function. vim: set ft=vim et ts=2 sw=2 : + +STARTTEST +:so small.vim +:if !has('cryptv') || !exists('*sha256') + e! test.ok + wq! test.out +:endif +:" +:let testcase='test for empty string: ' +:if sha256("") ==# 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855' +: let res='ok' +:else +: let res='ng' +:endif +:$put =testcase.res +:" +:let testcase='test for 1 char: ' +:if sha256("a") ==# 'ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785afee48bb' +: let res='ok' +:else +: let res='ng' +:endif +:$put =testcase.res +:" +:let testcase='test for 3 chars: ' +:if sha256("abc") ==# 'ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad' +: let res='ok' +:else +: let res='ng' +:endif +:$put =testcase.res +:" +:let testcase='test for contains meta char: ' +:if sha256("foo\nbar") ==# '807eff6267f3f926a21d234f7b0cf867a86f47e07a532f15e8cc39ed110ca776' +: let res='ok' +:else +: let res='ng' +:endif +:$put =testcase.res +:" +:let testcase='test for contains non-ascii char: ' +:if sha256("\xde\xad\xbe\xef") ==# '5f78c33274e43fa9de5659265c1d917e25c03722dcb0b8d27db8d5feaa813953' +: let res='ok' +:else +: let res='ng' +:endif +:$put =testcase.res +" +:/^start:/,$wq! test.out +ENDTEST + +start: diff -r 274c841f033a src/testdir/test89.ok --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/testdir/test89.ok Mon Jan 28 01:07:47 2013 +0900 @@ -0,0 +1,6 @@ +start: +test for empty string: ok +test for 1 char: ok +test for 3 chars: ok +test for contains meta char: ok +test for contains non-ascii char: ok