tlibventi: add functions vtsha1 and vtsha1check - plan9port - [fork] Plan 9 from user space
(HTM) git clone git://src.adamsgaard.dk/plan9port
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) README
(DIR) LICENSE
---
(DIR) commit 83b247a771a514792b972216e1ad32ae1f3fc316
(DIR) parent f4792e43aef14341bb40f32e8583bd4731e1dcb4
(HTM) Author: David du Colombier <0intro@gmail.com>
Date: Sat, 21 Jan 2012 10:01:20 +0100
libventi: add functions vtsha1 and vtsha1check
These functions are equivalent to vtSha1 and vtSha1Check
from the old libventi and are particularly used by Fossil.
R=rsc
http://codereview.appspot.com/5555064
Diffstat:
M include/venti.h | 4 ++++
M src/libventi/mkfile | 1 +
A src/libventi/sha1.c | 28 ++++++++++++++++++++++++++++
3 files changed, 33 insertions(+), 0 deletions(-)
---
(DIR) diff --git a/include/venti.h b/include/venti.h
t@@ -381,6 +381,10 @@ int vtwritepacket(VtConn*, uchar score[VtScoreSize], uint type, Packet *p);
int vtsync(VtConn*);
int vtping(VtConn*);
+/* sha1 */
+void vtsha1(uchar score[VtScoreSize], uchar*, int);
+int vtsha1check(uchar score[VtScoreSize], uchar*, int);
+
/*
* Data blocks and block cache.
*/
(DIR) diff --git a/src/libventi/mkfile b/src/libventi/mkfile
t@@ -24,6 +24,7 @@ OFILES=\
scorefmt.$O\
send.$O\
server.$O\
+ sha1.$O\
srvhello.$O\
strdup.$O\
string.$O\
(DIR) diff --git a/src/libventi/sha1.c b/src/libventi/sha1.c
t@@ -0,0 +1,28 @@
+#include <u.h>
+#include <libc.h>
+#include <venti.h>
+#include <libsec.h>
+
+void
+vtsha1(uchar score[VtScoreSize], uchar *p, int n)
+{
+ DigestState ds;
+
+ memset(&ds, 0, sizeof ds);
+ sha1(p, n, score, &ds);
+}
+
+int
+vtsha1check(uchar score[VtScoreSize], uchar *p, int n)
+{
+ DigestState ds;
+ uchar score2[VtScoreSize];
+
+ memset(&ds, 0, sizeof ds);
+ sha1(p, n, score2, &ds);
+ if(memcmp(score, score2, VtScoreSize) != 0) {
+ werrstr("vtsha1check failed");
+ return -1;
+ }
+ return 0;
+}