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

Raspunde prin e-mail lui