adam@57: #include adam@0: adam@8: #include adam@8: adam@3: uw_unit uw_OpenidFfi_init(uw_context); adam@3: adam@8: typedef struct { adam@8: uw_Basis_string endpoint, localId; adam@8: } uw_OpenidFfi_discovery; adam@2: adam@2: uw_Basis_string uw_OpenidFfi_endpoint(uw_context, uw_OpenidFfi_discovery); adam@2: uw_Basis_string uw_OpenidFfi_localId(uw_context, uw_OpenidFfi_discovery); adam@2: adam@2: uw_OpenidFfi_discovery *uw_OpenidFfi_discover(uw_context, uw_Basis_string id); adam@3: adam@3: typedef uw_buffer *uw_OpenidFfi_inputs; adam@3: typedef uw_buffer *uw_OpenidFfi_outputs; adam@3: adam@3: uw_OpenidFfi_inputs uw_OpenidFfi_createInputs(uw_context); adam@3: uw_unit uw_OpenidFfi_addInput(uw_context, uw_OpenidFfi_inputs, uw_Basis_string key, uw_Basis_string value); adam@3: adam@3: uw_Basis_string uw_OpenidFfi_getOutput(uw_context, uw_OpenidFfi_outputs, uw_Basis_string key); adam@27: uw_unit uw_OpenidFfi_printOutputs(uw_context, uw_OpenidFfi_outputs); adam@3: adam@4: uw_OpenidFfi_outputs uw_OpenidFfi_direct(uw_context, uw_Basis_string url, uw_OpenidFfi_inputs); adam@4: uw_OpenidFfi_outputs uw_OpenidFfi_indirect(uw_context, uw_Basis_string fields); adam@6: adam@12: uw_Basis_string uw_OpenidFfi_sha1(uw_context ctx, uw_Basis_string data); adam@12: uw_Basis_string uw_OpenidFfi_sha256(uw_context ctx, uw_Basis_string data); adam@12: adam@12: uw_Basis_string uw_OpenidFfi_hmac_sha1(uw_context, uw_Basis_string key, uw_Basis_string data); adam@12: uw_Basis_string uw_OpenidFfi_hmac_sha256(uw_context, uw_Basis_string key, uw_Basis_string data); adam@8: adam@8: typedef DH *uw_OpenidFfi_dh; adam@8: adam@8: uw_Basis_string uw_OpenidFfi_modulus(uw_context, uw_OpenidFfi_dh); adam@8: uw_Basis_string uw_OpenidFfi_generator(uw_context, uw_OpenidFfi_dh); adam@8: uw_Basis_string uw_OpenidFfi_public(uw_context, uw_OpenidFfi_dh); adam@8: adam@8: uw_OpenidFfi_dh uw_OpenidFfi_generate(uw_context); adam@8: uw_Basis_string uw_OpenidFfi_compute(uw_context, uw_OpenidFfi_dh, uw_Basis_string server_pub); adam@12: uw_Basis_string uw_OpenidFfi_xor(uw_context, uw_Basis_string, uw_Basis_string); greenrd@43: uw_Basis_bool uw_OpenidFfi_secCmp(uw_context, uw_Basis_string, uw_Basis_string); adam@13: adam@13: uw_OpenidFfi_inputs uw_OpenidFfi_remode(uw_context, uw_OpenidFfi_outputs, uw_Basis_string mode);