diff include/openid.h @ 8:870d99055dd1

Diffie-Hellman started but not fully tested; successfully checked signature from AOL
author Adam Chlipala <adam@chlipala.net>
date Wed, 29 Dec 2010 12:16:32 -0500
parents 976121190b2d
children c778455fe570
line wrap: on
line diff
--- a/include/openid.h	Tue Dec 28 19:57:25 2010 -0500
+++ b/include/openid.h	Wed Dec 29 12:16:32 2010 -0500
@@ -1,8 +1,12 @@
 #include <urweb/urweb.h>
 
+#include <openssl/dh.h>
+
 uw_unit uw_OpenidFfi_init(uw_context);
 
-typedef struct uw_OpenidFfi_discovery *uw_OpenidFfi_discovery;
+typedef struct {
+  uw_Basis_string endpoint, localId;
+} uw_OpenidFfi_discovery;
 
 uw_Basis_string uw_OpenidFfi_endpoint(uw_context, uw_OpenidFfi_discovery);
 uw_Basis_string uw_OpenidFfi_localId(uw_context, uw_OpenidFfi_discovery);
@@ -20,4 +24,14 @@
 uw_OpenidFfi_outputs uw_OpenidFfi_direct(uw_context, uw_Basis_string url, uw_OpenidFfi_inputs);
 uw_OpenidFfi_outputs uw_OpenidFfi_indirect(uw_context, uw_Basis_string fields);
 
+uw_Basis_string uw_OpenidFfi_sha1(uw_context, uw_Basis_string key, uw_Basis_string data);
 uw_Basis_string uw_OpenidFfi_sha256(uw_context, uw_Basis_string key, uw_Basis_string data);
+
+typedef DH *uw_OpenidFfi_dh;
+
+uw_Basis_string uw_OpenidFfi_modulus(uw_context, uw_OpenidFfi_dh);
+uw_Basis_string uw_OpenidFfi_generator(uw_context, uw_OpenidFfi_dh);
+uw_Basis_string uw_OpenidFfi_public(uw_context, uw_OpenidFfi_dh);
+
+uw_OpenidFfi_dh uw_OpenidFfi_generate(uw_context);
+uw_Basis_string uw_OpenidFfi_compute(uw_context, uw_OpenidFfi_dh, uw_Basis_string server_pub);