|
@@ -82,16 +82,21 @@ typedef struct SRP_gN_cache_st {
|
|
|
DECLARE_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;
|
|
|
|
|
|
DECLARE_STACK_OF(SRP_user_pwd)
|
|
|
|
|
|
+void SRP_user_pwd_free(SRP_user_pwd *user_pwd);
|
|
|
+
|
|
|
typedef struct SRP_VBASE_st {
|
|
|
STACK_OF(SRP_user_pwd) *users_pwd;
|
|
|
STACK_OF(SRP_gN_cache) *gN_cache;
|
|
@@ -115,7 +120,12 @@ DECLARE_STACK_OF(SRP_gN)
|
|
|
SRP_VBASE *SRP_VBASE_new(char *seed_key);
|
|
|
int 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. */
|
|
|
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,
|