📄 plan9-sha1.c
字号:
#include <u.h>#include <libc.h>#include <venti.h>#include <libsec.h>static void encode(uchar*, u32int*, ulong);extern void vtSha1Block(u32int *s, uchar *p, ulong len);struct VtSha1{ DigestState *s;};VtSha1 *vtSha1Alloc(void){ VtSha1 *s; s = vtMemAlloc(sizeof(VtSha1)); vtSha1Init(s); return s;}voidvtSha1Free(VtSha1 *s){ if(s == nil) return; if(s->s != nil) free(s->s); vtMemFree(s);}voidvtSha1Init(VtSha1 *s){ s->s = nil;}voidvtSha1Update(VtSha1 *s, uchar *p, int len){ s->s = sha1(p, len, nil, s->s);}voidvtSha1Final(VtSha1 *s, uchar *digest){ sha1(nil, 0, digest, s->s); s->s = nil;}voidvtSha1(uchar sha1[VtScoreSize], uchar *p, int n){ VtSha1 s; vtSha1Init(&s); vtSha1Update(&s, p, n); vtSha1Final(&s, sha1);}intvtSha1Check(uchar score[VtScoreSize], uchar *p, int n){ VtSha1 s; uchar score2[VtScoreSize]; vtSha1Init(&s); vtSha1Update(&s, p, n); vtSha1Final(&s, score2); if(memcmp(score, score2, VtScoreSize) != 0) { vtSetError("vtSha1Check failed"); return 0; } return 1;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -