/* * Copyright 2004-2018 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2004, EdelKey Project. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy * in the file LICENSE in the source distribution or at * https://www.openssl.org/source/license.html * * Originally written by Christophe Renou and Peter Sylvester, * for the EdelKey project. */ #ifndef HEADER_SRP_H # define HEADER_SRP_H #include <openssl/opensslconf.h> #ifndef OPENSSL_NO_SRP # include <stdio.h> # include <string.h> # include <openssl/safestack.h> # include <openssl/bn.h> # include <openssl/crypto.h> # ifdef __cplusplus extern "C" { # endif typedef struct SRP_gN_cache_st { char *b64_bn; BIGNUM *bn; } SRP_gN_cache; DEFINE_STACK_OF(SRP_gN_cache) typedef struct SRP_user_pwd_st { /* Owned by us. */ char *id; BIGNUM *s; BIGNUM *v; /* Not owned by us. */ const BIGNUM *g; const BIGNUM *N; /* Owned by us. */ char *info; } SRP_user_pwd; void SRP_user_pwd_free(SRP_user_pwd *user_pwd); DEFINE_STACK_OF(SRP_user_pwd) typedef struct SRP_VBASE_st { STACK_OF(SRP_user_pwd) *users_pwd; STACK_OF(SRP_gN_cache) *gN_cache; /* to simulate a user */ char *seed_key; const BIGNUM *default_g; const BIGNUM *default_N; } SRP_VBASE; /* * Internal structure storing N and g pair */ typedef struct SRP_gN_st { char *id; const BIGNUM *g; const BIGNUM *N; } SRP_gN; DEFINE_STACK_OF(SRP_gN) SRP_VBASE *SRP_VBASE_new(char *seed_key); void SRP_VBASE_free(SRP_VBASE *vb); int SRP_VBASE_init(SRP_VBASE *vb, char *verifier_file); /* This method ignores the configured seed and fails for an unknown user. */ DEPRECATEDIN_1_1_0(SRP_user_pwd *SRP_VBASE_get_by_user(SRP_VBASE *vb, char *username)) /* NOTE: unlike in SRP_VBASE_get_by_user, caller owns the returned pointer.*/ SRP_user_pwd *SRP_VBASE_get1_by_user(SRP_VBASE *vb, char *username); char *SRP_create_verifier(const char *user, const char *pass, char **salt, char **verifier, const char *N, const char *g); int SRP_create_verifier_BN(const char *user, const char *pass, BIGNUM **salt, BIGNUM **verifier, const BIGNUM *N, const BIGNUM *g); # define SRP_NO_ERROR 0 # define SRP_ERR_VBASE_INCOMPLETE_FILE 1 # define SRP_ERR_VBASE_BN_LIB 2 # define SRP_ERR_OPEN_FILE 3 # define SRP_ERR_MEMORY 4 # define DB_srptype 0 # define DB_srpverifier 1 # define DB_srpsalt 2 # define DB_srpid 3 # define DB_srpgN 4 # define DB_srpinfo 5 # undef DB_NUMBER # define DB_NUMBER 6 # define DB_SRP_INDEX 'I' # define DB_SRP_VALID 'V' # define DB_SRP_REVOKED 'R' # define DB_SRP_MODIF 'v' /* see srp.c */ char *SRP_check_known_gN_param(const BIGNUM *g, const BIGNUM *N); SRP_gN *SRP_get_default_gN(const char *id); /* server side .... */ BIGNUM *SRP_Calc_server_key(const BIGNUM *A, const BIGNUM *v, const BIGNUM *u, const BIGNUM *b, const BIGNUM *N); BIGNUM *SRP_Calc_B(const BIGNUM *b, const BIGNUM *N, const BIGNUM *g, const BIGNUM *v); int SRP_Verify_A_mod_N(const BIGNUM *A, const BIGNUM *N); BIGNUM *SRP_Calc_u(const BIGNUM *A, const BIGNUM *B, const BIGNUM *N); /* client side .... */ BIGNUM *SRP_Calc_x(const BIGNUM *s, const char *user, const char *pass); BIGNUM *SRP_Calc_A(const BIGNUM *a, const BIGNUM *N, const BIGNUM *g); BIGNUM *SRP_Calc_client_key(const BIGNUM *N, const BIGNUM *B, const BIGNUM *g, const BIGNUM *x, const BIGNUM *a, const BIGNUM *u); int SRP_Verify_B_mod_N(const BIGNUM *B, const BIGNUM *N); # define SRP_MINIMAL_N 1024 # ifdef __cplusplus } # endif # endif #endif
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
archs | Folder | 0755 |
|
|
aes.h | File | 3.27 KB | 0644 |
|
asn1.h | File | 32.84 KB | 0644 |
|
asn1_asm.h | File | 2.66 KB | 0644 |
|
asn1_mac.h | File | 395 B | 0644 |
|
asn1_no-asm.h | File | 2.82 KB | 0644 |
|
asn1err.h | File | 14.34 KB | 0644 |
|
asn1t.h | File | 32.17 KB | 0644 |
|
asn1t_asm.h | File | 2.68 KB | 0644 |
|
asn1t_no-asm.h | File | 2.84 KB | 0644 |
|
async.h | File | 2.34 KB | 0644 |
|
asyncerr.h | File | 1.29 KB | 0644 |
|
bio.h | File | 34.09 KB | 0644 |
|
bio_asm.h | File | 2.64 KB | 0644 |
|
bio_no-asm.h | File | 2.8 KB | 0644 |
|
bioerr.h | File | 6.25 KB | 0644 |
|
blowfish.h | File | 1.8 KB | 0644 |
|
bn.h | File | 21.62 KB | 0644 |
|
bn_conf.h | File | 100 B | 0644 |
|
bn_conf_asm.h | File | 2.88 KB | 0644 |
|
bn_conf_no-asm.h | File | 3.05 KB | 0644 |
|
bnerr.h | File | 4.85 KB | 0644 |
|
buffer.h | File | 1.56 KB | 0644 |
|
buffererr.h | File | 820 B | 0644 |
|
camellia.h | File | 3.1 KB | 0644 |
|
cast.h | File | 1.63 KB | 0644 |
|
cmac.h | File | 1.04 KB | 0644 |
|
cmp_asm.h | File | 2.64 KB | 0644 |
|
cmp_no-asm.h | File | 2.8 KB | 0644 |
|
cms.h | File | 16 KB | 0644 |
|
cms_asm.h | File | 2.64 KB | 0644 |
|
cms_no-asm.h | File | 2.8 KB | 0644 |
|
cmserr.h | File | 10.96 KB | 0644 |
|
comp.h | File | 1.3 KB | 0644 |
|
comperr.h | File | 1.18 KB | 0644 |
|
conf.h | File | 5.47 KB | 0644 |
|
conf_api.h | File | 1.27 KB | 0644 |
|
conf_asm.h | File | 2.66 KB | 0644 |
|
conf_no-asm.h | File | 2.82 KB | 0644 |
|
conferr.h | File | 3.35 KB | 0644 |
|
configuration_asm.h | File | 2.84 KB | 0644 |
|
configuration_no-asm.h | File | 3.02 KB | 0644 |
|
crmf_asm.h | File | 2.66 KB | 0644 |
|
crmf_no-asm.h | File | 2.82 KB | 0644 |
|
crypto.h | File | 16.91 KB | 0644 |
|
crypto_asm.h | File | 2.7 KB | 0644 |
|
crypto_no-asm.h | File | 2.87 KB | 0644 |
|
cryptoerr.h | File | 2.21 KB | 0644 |
|
ct.h | File | 15.5 KB | 0644 |
|
ct_asm.h | File | 2.62 KB | 0644 |
|
ct_no-asm.h | File | 2.78 KB | 0644 |
|
cterr.h | File | 3.39 KB | 0644 |
|
des.h | File | 7.45 KB | 0644 |
|
dh.h | File | 13.19 KB | 0644 |
|
dherr.h | File | 3.94 KB | 0644 |
|
dsa.h | File | 9.82 KB | 0644 |
|
dsaerr.h | File | 2.9 KB | 0644 |
|
dso_conf.h | File | 102 B | 0644 |
|
dso_conf_asm.h | File | 2.9 KB | 0644 |
|
dso_conf_no-asm.h | File | 3.08 KB | 0644 |
|
dtls1.h | File | 1.54 KB | 0644 |
|
e_os2.h | File | 8.71 KB | 0644 |
|
ebcdic.h | File | 924 B | 0644 |
|
ec.h | File | 62.19 KB | 0644 |
|
ecdh.h | File | 358 B | 0644 |
|
ecdsa.h | File | 358 B | 0644 |
|
ecerr.h | File | 15.45 KB | 0644 |
|
engine.h | File | 33.91 KB | 0644 |
|
engineerr.h | File | 5.32 KB | 0644 |
|
err.h | File | 11 KB | 0644 |
|
err_asm.h | File | 2.64 KB | 0644 |
|
err_no-asm.h | File | 2.8 KB | 0644 |
|
ess_asm.h | File | 2.64 KB | 0644 |
|
ess_no-asm.h | File | 2.8 KB | 0644 |
|
evp.h | File | 75.14 KB | 0644 |
|
evperr.h | File | 11.18 KB | 0644 |
|
fipskey_asm.h | File | 2.72 KB | 0644 |
|
fipskey_no-asm.h | File | 2.89 KB | 0644 |
|
hmac.h | File | 1.55 KB | 0644 |
|
idea.h | File | 2.05 KB | 0644 |
|
kdf.h | File | 4.22 KB | 0644 |
|
kdferr.h | File | 2.07 KB | 0644 |
|
lhash.h | File | 9.05 KB | 0644 |
|
lhash_asm.h | File | 2.68 KB | 0644 |
|
lhash_no-asm.h | File | 2.84 KB | 0644 |
|
md2.h | File | 1.03 KB | 0644 |
|
md4.h | File | 1.29 KB | 0644 |
|
md5.h | File | 1.29 KB | 0644 |
|
mdc2.h | File | 1.03 KB | 0644 |
|
modes.h | File | 10.23 KB | 0644 |
|
obj_mac.h | File | 212.42 KB | 0644 |
|
objects.h | File | 6.48 KB | 0644 |
|
objectserr.h | File | 1.29 KB | 0644 |
|
ocsp.h | File | 14.95 KB | 0644 |
|
ocsp_asm.h | File | 2.66 KB | 0644 |
|
ocsp_no-asm.h | File | 2.82 KB | 0644 |
|
ocsperr.h | File | 3.28 KB | 0644 |
|
opensslconf.h | File | 590 B | 0644 |
|
opensslconf_asm.h | File | 6.76 KB | 0644 |
|
opensslconf_no-asm.h | File | 2.8 KB | 0644 |
|
opensslv.h | File | 4.01 KB | 0644 |
|
opensslv_asm.h | File | 2.74 KB | 0644 |
|
opensslv_no-asm.h | File | 2.91 KB | 0644 |
|
ossl_typ.h | File | 6.17 KB | 0644 |
|
pem.h | File | 15.11 KB | 0644 |
|
pem2.h | File | 415 B | 0644 |
|
pemerr.h | File | 5.1 KB | 0644 |
|
pkcs12.h | File | 9.64 KB | 0644 |
|
pkcs12_asm.h | File | 2.7 KB | 0644 |
|
pkcs12_no-asm.h | File | 2.87 KB | 0644 |
|
pkcs12err.h | File | 3.66 KB | 0644 |
|
pkcs7.h | File | 11.32 KB | 0644 |
|
pkcs7_asm.h | File | 2.68 KB | 0644 |
|
pkcs7_no-asm.h | File | 2.84 KB | 0644 |
|
pkcs7err.h | File | 4.99 KB | 0644 |
|
rand.h | File | 2.16 KB | 0644 |
|
rand_drbg.h | File | 4.65 KB | 0644 |
|
randerr.h | File | 4.52 KB | 0644 |
|
rc2.h | File | 1.5 KB | 0644 |
|
rc4.h | File | 825 B | 0644 |
|
rc5.h | File | 1.94 KB | 0644 |
|
ripemd.h | File | 1.21 KB | 0644 |
|
rsa.h | File | 21.68 KB | 0644 |
|
rsaerr.h | File | 8.86 KB | 0644 |
|
safestack.h | File | 7.95 KB | 0644 |
|
safestack_asm.h | File | 2.76 KB | 0644 |
|
safestack_no-asm.h | File | 2.93 KB | 0644 |
|
seed.h | File | 3.4 KB | 0644 |
|
sha.h | File | 3.74 KB | 0644 |
|
srp.h | File | 3.74 KB | 0644 |
|
srp_asm.h | File | 2.64 KB | 0644 |
|
srp_no-asm.h | File | 2.8 KB | 0644 |
|
srtp.h | File | 1.29 KB | 0644 |
|
ssl.h | File | 111.71 KB | 0644 |
|
ssl2.h | File | 542 B | 0644 |
|
ssl3.h | File | 14.36 KB | 0644 |
|
ssl_asm.h | File | 2.64 KB | 0644 |
|
ssl_no-asm.h | File | 2.8 KB | 0644 |
|
sslerr.h | File | 46.94 KB | 0644 |
|
stack.h | File | 3.02 KB | 0644 |
|
store.h | File | 10.94 KB | 0644 |
|
storeerr.h | File | 4.3 KB | 0644 |
|
symhacks.h | File | 1.28 KB | 0644 |
|
tls1.h | File | 70.97 KB | 0644 |
|
ts.h | File | 21.9 KB | 0644 |
|
tserr.h | File | 6.59 KB | 0644 |
|
txt_db.h | File | 1.63 KB | 0644 |
|
ui.h | File | 15.68 KB | 0644 |
|
ui_asm.h | File | 2.62 KB | 0644 |
|
ui_no-asm.h | File | 2.78 KB | 0644 |
|
uierr.h | File | 2.67 KB | 0644 |
|
whrlpool.h | File | 1.34 KB | 0644 |
|
x509.h | File | 42.31 KB | 0644 |
|
x509_asm.h | File | 2.66 KB | 0644 |
|
x509_no-asm.h | File | 2.82 KB | 0644 |
|
x509_vfy.h | File | 31.69 KB | 0644 |
|
x509_vfy_asm.h | File | 2.74 KB | 0644 |
|
x509_vfy_no-asm.h | File | 2.91 KB | 0644 |
|
x509err.h | File | 6.64 KB | 0644 |
|
x509v3.h | File | 32.66 KB | 0644 |
|
x509v3_asm.h | File | 2.7 KB | 0644 |
|
x509v3_no-asm.h | File | 2.87 KB | 0644 |
|
x509v3err.h | File | 8.69 KB | 0644 |
|