/* * 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_mac.h | File | 395 B | 0644 |
|
asn1err.h | File | 14.26 KB | 0644 |
|
asn1t.h | File | 32.17 KB | 0644 |
|
async.h | File | 2.34 KB | 0644 |
|
asyncerr.h | File | 1.29 KB | 0644 |
|
bio.h | File | 34.09 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 | 3 KB | 0644 |
|
bn_conf_no-asm.h | File | 3.17 KB | 0644 |
|
bnerr.h | File | 4.79 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 |
|
cms.h | File | 16 KB | 0644 |
|
cmserr.h | File | 10.9 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 |
|
conferr.h | File | 3.35 KB | 0644 |
|
crypto.h | File | 16.83 KB | 0644 |
|
cryptoerr.h | File | 2.21 KB | 0644 |
|
ct.h | File | 15.5 KB | 0644 |
|
cterr.h | File | 3.39 KB | 0644 |
|
des.h | File | 7.45 KB | 0644 |
|
dh.h | File | 13.09 KB | 0644 |
|
dherr.h | File | 3.88 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 | 3.02 KB | 0644 |
|
dso_conf_no-asm.h | File | 3.2 KB | 0644 |
|
dtls1.h | File | 1.54 KB | 0644 |
|
e_os2.h | File | 8.68 KB | 0644 |
|
ebcdic.h | File | 924 B | 0644 |
|
ec.h | File | 62.11 KB | 0644 |
|
ecdh.h | File | 358 B | 0644 |
|
ecdsa.h | File | 358 B | 0644 |
|
ecerr.h | File | 15.39 KB | 0644 |
|
engine.h | File | 33.85 KB | 0644 |
|
engineerr.h | File | 5.32 KB | 0644 |
|
err.h | File | 11 KB | 0644 |
|
evp.h | File | 75.03 KB | 0644 |
|
evperr.h | File | 11.16 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 |
|
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 |
|
ocsperr.h | File | 3.28 KB | 0644 |
|
opensslconf.h | File | 590 B | 0644 |
|
opensslconf_asm.h | File | 6.88 KB | 0644 |
|
opensslconf_no-asm.h | File | 2.92 KB | 0644 |
|
opensslv.h | File | 4.01 KB | 0644 |
|
ossl_typ.h | File | 6.12 KB | 0644 |
|
pem.h | File | 15.11 KB | 0644 |
|
pem2.h | File | 415 B | 0644 |
|
pemerr.h | File | 4.98 KB | 0644 |
|
pkcs12.h | File | 9.64 KB | 0644 |
|
pkcs12err.h | File | 3.66 KB | 0644 |
|
pkcs7.h | File | 11.32 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 |
|
seed.h | File | 3.4 KB | 0644 |
|
sha.h | File | 3.74 KB | 0644 |
|
srp.h | File | 3.74 KB | 0644 |
|
srtp.h | File | 1.29 KB | 0644 |
|
ssl.h | File | 108.65 KB | 0644 |
|
ssl2.h | File | 542 B | 0644 |
|
ssl3.h | File | 14.23 KB | 0644 |
|
sslerr.h | File | 45.58 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.79 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 |
|
uierr.h | File | 2.67 KB | 0644 |
|
whrlpool.h | File | 1.34 KB | 0644 |
|
x509.h | File | 42.11 KB | 0644 |
|
x509_vfy.h | File | 31.42 KB | 0644 |
|
x509err.h | File | 6.62 KB | 0644 |
|
x509v3.h | File | 32.59 KB | 0644 |
|
x509v3err.h | File | 8.57 KB | 0644 |
|