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
This commit is contained in:
David du Colombier 2012-01-21 10:01:20 +01:00
parent f4792e43ae
commit 83b247a771
3 changed files with 33 additions and 0 deletions

View file

@ -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.
*/

View file

@ -24,6 +24,7 @@ OFILES=\
scorefmt.$O\
send.$O\
server.$O\
sha1.$O\
srvhello.$O\
strdup.$O\
string.$O\

28
src/libventi/sha1.c Normal file
View file

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