summaryrefslogtreecommitdiff
path: root/sys/include
diff options
context:
space:
mode:
authormischief <mischief@offblast.org>2015-08-25 02:07:46 -0700
committermischief <mischief@offblast.org>2015-08-25 02:07:46 -0700
commit6b402b83cffc97015345dab1c27c35afe64bb3db (patch)
treeb525f9443564682c46f8c36af6a4d238bd39a756 /sys/include
parentdbe0a995f03f26ea2b6859d21df3bd67856d672d (diff)
import E script from bell labs
Diffstat (limited to 'sys/include')
-rw-r--r--sys/include/libsec.h20
1 files changed, 19 insertions, 1 deletions
diff --git a/sys/include/libsec.h b/sys/include/libsec.h
index 60f25f944..d8d4852d5 100644
--- a/sys/include/libsec.h
+++ b/sys/include/libsec.h
@@ -403,6 +403,16 @@ PEMChain*readcertchain(char *filename);
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);
+/*
+ * ECC
+ */
+
+/* ids for ecnamedcurve */
+enum
+{
+ Secp256r1 = 23,
+};
+
typedef struct ECpoint{
int inf;
mpint *x;
@@ -424,10 +434,15 @@ typedef struct ECdomain{
mpint *h;
} ECdomain;
+ECdomain* ecnamedcurve(int);
+void ecfreepoint(ECpoint*);
+void ecfreepriv(ECpriv*);
+void ecfreedomain(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 *);
+ECpoint* betoec(ECdomain*, uchar*, int, ECpoint*);
+ECpoint* strtoec(ECdomain *, char *, char **, ECpoint*);
ECpriv* ecgen(ECdomain *, ECpriv*);
int ecverify(ECdomain *, ECpoint *);
int ecpubverify(ECdomain *, ECpub *);
@@ -457,5 +472,8 @@ mpint* dh_new(DHstate *dh, mpint *p, mpint *g);
/* calculate shared key: k = pub ^ x % p */
mpint* dh_finish(DHstate *dh, mpint *pub);
+/* constant-time comparison similar to memcmp(2) */
+int constcmp(uchar *x, uchar *y, int len);
+
/* password-based key derivation function 2 (RFC 2898) */
void pbkdf2_hmac_sha1(uchar *p, ulong plen, uchar *s, ulong slen, ulong rounds, uchar *d, ulong dlen);