summaryrefslogtreecommitdiff
path: root/sys/include
diff options
context:
space:
mode:
authoraiju <aiju@phicode.de>2012-06-04 11:50:37 +0200
committeraiju <aiju@phicode.de>2012-06-04 11:50:37 +0200
commit005248b4c5277e149c6e673949c874ce76774fde (patch)
tree3a1d09156d6b6e237ea3e00c45a884700c9c2351 /sys/include
parentc065e02a99635971809a8a1b34dd0874c30ec800 (diff)
added elliptic curve stuff and RIPEMD-160
Diffstat (limited to 'sys/include')
-rw-r--r--sys/include/libsec.h35
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