diff options
author | aiju <aiju@phicode.de> | 2012-06-04 11:50:37 +0200 |
---|---|---|
committer | aiju <aiju@phicode.de> | 2012-06-04 11:50:37 +0200 |
commit | 005248b4c5277e149c6e673949c874ce76774fde (patch) | |
tree | 3a1d09156d6b6e237ea3e00c45a884700c9c2351 /sys/include | |
parent | c065e02a99635971809a8a1b34dd0874c30ec800 (diff) |
added elliptic curve stuff and RIPEMD-160
Diffstat (limited to 'sys/include')
-rw-r--r-- | sys/include/libsec.h | 35 |
1 files changed, 34 insertions, 1 deletions
diff --git a/sys/include/libsec.h b/sys/include/libsec.h index 3bde79323..bc20ab847 100644 --- a/sys/include/libsec.h +++ b/sys/include/libsec.h @@ -403,4 +403,37 @@ PEMChain*readcertchain(char *filename); /* aes_xts.c */ int aes_xts_encrypt(ulong tweak[], ulong ecb[], vlong sectorNumber, uchar *input, uchar *output, ulong len) ; -int aes_xts_decrypt(ulong tweak[], ulong ecb[], vlong sectorNumber, uchar *input, uchar *output, ulong len);
\ No newline at end of file +int aes_xts_decrypt(ulong tweak[], ulong ecb[], vlong sectorNumber, uchar *input, uchar *output, ulong len); + +typedef struct ECpoint{ + int inf; + mpint *x; + mpint *y; +} ECpoint; + +typedef ECpoint ECpub; +typedef struct ECpriv{ + ECpoint; + mpint *d; +} ECpriv; + +typedef struct ECdomain{ + mpint *p; + mpint *a; + mpint *b; + ECpoint *G; + mpint *n; + mpint *h; +} ECdomain; + +void ecassign(ECdomain *, ECpoint *old, ECpoint *new); +void ecadd(ECdomain *, ECpoint *a, ECpoint *b, ECpoint *s); +void ecmul(ECdomain *, ECpoint *a, mpint *k, ECpoint *s); +ECpoint* strtoec(ECdomain *, char *, char **, ECpoint *); +ECpriv* ecgen(ECdomain *, ECpriv*); +int ecverify(ECdomain *, ECpoint *); +int ecpubverify(ECdomain *, ECpub *); +void ecdsasign(ECdomain *, ECpriv *, uchar *, int, mpint *, mpint *); +int ecdsaverify(ECdomain *, ECpub *, uchar *, int, mpint *, mpint *); + +DigestState* ripemd160(uchar *, ulong, uchar *, DigestState *);
\ No newline at end of file |