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; +}