summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/srp/srp.h
diff options
context:
space:
mode:
authortedu <>2014-07-28 17:57:18 +0000
committertedu <>2014-07-28 17:57:18 +0000
commit9bf4aaa7e0515aa08e8a462348fc47d3fec0e831 (patch)
tree808724802a47d43670e8dfd6f6050aba39dcf93e /src/lib/libcrypto/srp/srp.h
parent224cc55e7b0aa21110d14dd564e88e13893a294e (diff)
downloadopenbsd-9bf4aaa7e0515aa08e8a462348fc47d3fec0e831.tar.gz
openbsd-9bf4aaa7e0515aa08e8a462348fc47d3fec0e831.tar.bz2
openbsd-9bf4aaa7e0515aa08e8a462348fc47d3fec0e831.zip
Remove SRP code. It contains a bug (this should not surprise anyone), but
the details are under embargo. The original plan was to wait for the embargo to lift, but we've been waiting for quite some time, and there's no indication of when or even if it will end. No sense in dragging this out any longer. The SRP code has never been enabled in OpenBSD, though I understand it is in use by some other people. However, in light of this and other issues, we're officially saying SRP is outside the scope of libressl. (For now.)
Diffstat (limited to 'src/lib/libcrypto/srp/srp.h')
-rw-r--r--src/lib/libcrypto/srp/srp.h174
1 files changed, 0 insertions, 174 deletions
diff --git a/src/lib/libcrypto/srp/srp.h b/src/lib/libcrypto/srp/srp.h
deleted file mode 100644
index 168d9656b3..0000000000
--- a/src/lib/libcrypto/srp/srp.h
+++ /dev/null
@@ -1,174 +0,0 @@
1/* $OpenBSD: srp.h,v 1.3 2014/07/10 22:45:58 jsing Exp $ */
2/* Written by Christophe Renou (christophe.renou@edelweb.fr) with
3 * the precious help of Peter Sylvester (peter.sylvester@edelweb.fr)
4 * for the EdelKey project and contributed to the OpenSSL project 2004.
5 */
6/* ====================================================================
7 * Copyright (c) 2004 The OpenSSL Project. All rights reserved.
8 *
9 * Redistribution and use in source and binary forms, with or without
10 * modification, are permitted provided that the following conditions
11 * are met:
12 *
13 * 1. Redistributions of source code must retain the above copyright
14 * notice, this list of conditions and the following disclaimer.
15 *
16 * 2. Redistributions in binary form must reproduce the above copyright
17 * notice, this list of conditions and the following disclaimer in
18 * the documentation and/or other materials provided with the
19 * distribution.
20 *
21 * 3. All advertising materials mentioning features or use of this
22 * software must display the following acknowledgment:
23 * "This product includes software developed by the OpenSSL Project
24 * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)"
25 *
26 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
27 * endorse or promote products derived from this software without
28 * prior written permission. For written permission, please contact
29 * licensing@OpenSSL.org.
30 *
31 * 5. Products derived from this software may not be called "OpenSSL"
32 * nor may "OpenSSL" appear in their names without prior written
33 * permission of the OpenSSL Project.
34 *
35 * 6. Redistributions of any form whatsoever must retain the following
36 * acknowledgment:
37 * "This product includes software developed by the OpenSSL Project
38 * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)"
39 *
40 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
41 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
42 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
43 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
44 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
45 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
46 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
47 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
48 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
49 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
50 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
51 * OF THE POSSIBILITY OF SUCH DAMAGE.
52 * ====================================================================
53 *
54 * This product includes cryptographic software written by Eric Young
55 * (eay@cryptsoft.com). This product includes software written by Tim
56 * Hudson (tjh@cryptsoft.com).
57 *
58 */
59#ifndef __SRP_H__
60#define __SRP_H__
61
62#include <openssl/opensslconf.h>
63
64#ifndef OPENSSL_NO_SRP
65
66#include <stdio.h>
67#include <string.h>
68
69#ifdef __cplusplus
70extern "C" {
71#endif
72
73#include <openssl/safestack.h>
74#include <openssl/bn.h>
75#include <openssl/crypto.h>
76
77typedef struct SRP_gN_cache_st
78 {
79 char *b64_bn;
80 BIGNUM *bn;
81 } SRP_gN_cache;
82
83
84DECLARE_STACK_OF(SRP_gN_cache)
85
86typedef struct SRP_user_pwd_st
87 {
88 char *id;
89 BIGNUM *s;
90 BIGNUM *v;
91 const BIGNUM *g;
92 const BIGNUM *N;
93 char *info;
94 } SRP_user_pwd;
95
96DECLARE_STACK_OF(SRP_user_pwd)
97
98typedef struct SRP_VBASE_st
99 {
100 STACK_OF(SRP_user_pwd) *users_pwd;
101 STACK_OF(SRP_gN_cache) *gN_cache;
102/* to simulate a user */
103 char *seed_key;
104 BIGNUM *default_g;
105 BIGNUM *default_N;
106 } SRP_VBASE;
107
108
109/*Structure interne pour retenir les couples N et g*/
110typedef struct SRP_gN_st
111 {
112 char *id;
113 BIGNUM *g;
114 BIGNUM *N;
115 } SRP_gN;
116
117DECLARE_STACK_OF(SRP_gN)
118
119SRP_VBASE *SRP_VBASE_new(char *seed_key);
120int SRP_VBASE_free(SRP_VBASE *vb);
121int SRP_VBASE_init(SRP_VBASE *vb, char * verifier_file);
122SRP_user_pwd *SRP_VBASE_get_by_user(SRP_VBASE *vb, char *username);
123char *SRP_create_verifier(const char *user, const char *pass, char **salt,
124 char **verifier, const char *N, const char *g);
125int SRP_create_verifier_BN(const char *user, const char *pass, BIGNUM **salt, BIGNUM **verifier, BIGNUM *N, BIGNUM *g);
126
127
128#define SRP_NO_ERROR 0
129#define SRP_ERR_VBASE_INCOMPLETE_FILE 1
130#define SRP_ERR_VBASE_BN_LIB 2
131#define SRP_ERR_OPEN_FILE 3
132#define SRP_ERR_MEMORY 4
133
134#define DB_srptype 0
135#define DB_srpverifier 1
136#define DB_srpsalt 2
137#define DB_srpid 3
138#define DB_srpgN 4
139#define DB_srpinfo 5
140#undef DB_NUMBER
141#define DB_NUMBER 6
142
143#define DB_SRP_INDEX 'I'
144#define DB_SRP_VALID 'V'
145#define DB_SRP_REVOKED 'R'
146#define DB_SRP_MODIF 'v'
147
148
149/* see srp.c */
150char * SRP_check_known_gN_param(BIGNUM* g, BIGNUM* N);
151SRP_gN *SRP_get_default_gN(const char * id) ;
152
153/* server side .... */
154BIGNUM *SRP_Calc_server_key(BIGNUM *A, BIGNUM *v, BIGNUM *u, BIGNUM *b, BIGNUM *N);
155BIGNUM *SRP_Calc_B(BIGNUM *b, BIGNUM *N, BIGNUM *g, BIGNUM *v);
156int SRP_Verify_A_mod_N(BIGNUM *A, BIGNUM *N);
157BIGNUM *SRP_Calc_u(BIGNUM *A, BIGNUM *B, BIGNUM *N) ;
158
159
160
161/* client side .... */
162BIGNUM *SRP_Calc_x(BIGNUM *s, const char *user, const char *pass);
163BIGNUM *SRP_Calc_A(BIGNUM *a, BIGNUM *N, BIGNUM *g);
164BIGNUM *SRP_Calc_client_key(BIGNUM *N, BIGNUM *B, BIGNUM *g, BIGNUM *x, BIGNUM *a, BIGNUM *u);
165int SRP_Verify_B_mod_N(BIGNUM *B, BIGNUM *N);
166
167#define SRP_MINIMAL_N 1024
168
169#ifdef __cplusplus
170}
171#endif
172
173#endif
174#endif