@@ -127,8 +127,13 @@ struct credinfo {
127
127
void * cred ;
128
128
};
129
129
130
- #define EXPECTED_SRV_CREDCOUNT 3
131
- #define EXPECTED_CLI_CREDCOUNT 3
130
+ #ifdef EXPERIMENTAL_SRP
131
+ # define EXPECTED_SRV_CREDCOUNT 3
132
+ # define EXPECTED_CLI_CREDCOUNT 3
133
+ #else
134
+ # define EXPECTED_SRV_CREDCOUNT 2
135
+ # define EXPECTED_CLI_CREDCOUNT 2
136
+ #endif
132
137
static struct credinfo srv_creds [EXPECTED_SRV_CREDCOUNT ];
133
138
static struct credinfo cli_creds [EXPECTED_CLI_CREDCOUNT ];
134
139
static int srv_credcount = 0 ;
@@ -819,9 +824,11 @@ void setup_starttls (void) {
819
824
"+ECDHE-KRB:" // +ECDHE-KRB-RSA:+ECDHE-KRB-ECDSA:"
820
825
"+ECDHE-RSA:+DHE-RSA:+ECDHE-ECDSA:+DHE-DSS:+RSA:"
821
826
"+CTYPE-SRV-KRB:+CTYPE-SRV-X.509:+CTYPE-SRV-OPENPGP:"
822
- "+CTYPE-CLI-KRB:+CTYPE-CLI-X.509:+CTYPE-CLI-OPENPGP:"
823
- "+SRP:+SRP-RSA:+SRP-DSS" ,
824
- NULL ));
827
+ "+CTYPE-CLI-KRB:+CTYPE-CLI-X.509:+CTYPE-CLI-OPENPGP"
828
+ #ifdef EXPERIMENTAL_SRP
829
+ ":+SRP:+SRP-RSA:+SRP-DSS"
830
+ #endif
831
+ ,NULL ));
825
832
#else
826
833
E_g2e ("Failed to setup NORMAL priority cache" ,
827
834
gnutls_priority_init (& priority_normal ,
@@ -830,9 +837,11 @@ void setup_starttls (void) {
830
837
"+COMP-NULL:+CIPHER-ALL:+CURVE-ALL:+SIGN-ALL:+MAC-ALL:"
831
838
"+ANON-ECDH:"
832
839
"+ECDHE-RSA:+DHE-RSA:+ECDHE-ECDSA:+DHE-DSS:+RSA:"
833
- "+CTYPE-X.509:+CTYPE-OPENPGP:"
834
- "+SRP:+SRP-RSA:+SRP-DSS" ,
835
- NULL ));
840
+ "+CTYPE-X.509:+CTYPE-OPENPGP"
841
+ #ifdef EXPERIMENTAL_SRP
842
+ ":+SRP:+SRP-RSA:+SRP-DSS"
843
+ #endif
844
+ ,NULL ));
836
845
#endif
837
846
//
838
847
// Try to setup on-the-fly signing key / certificate and gen a certkey
@@ -3860,9 +3869,11 @@ static int configure_session (struct command *cmd,
3860
3869
"+CTYPE-SRV-KRB:+CTYPE-SRV-X.509:+CTYPE-SRV-OPENPGP:"
3861
3870
"%cCTYPE-CLI-KRB:"
3862
3871
"%cCTYPE-CLI-X.509:"
3863
- "%cCTYPE-CLI-OPENPGP:"
3864
- "%cSRP:%cSRP-RSA:%cSRP-DSS" ,
3865
- anonpre_ok ?'+' :'-' ,
3872
+ "%cCTYPE-CLI-OPENPGP"
3873
+ #ifdef EXPERIMENTAL_SRP
3874
+ ":%cSRP:%cSRP-RSA:%cSRP-DSS"
3875
+ #endif
3876
+ ,anonpre_ok ?'+' :'-' ,
3866
3877
1 /* lidtpsup (cmd, LID_TYPE_KRB5)*/ ?'+' :'-' ,
3867
3878
1 /*lidtpsup (cmd, LID_TYPE_X509)*/ ?'+' :'-' ,
3868
3879
1 /*lidtpsup (cmd, LID_TYPE_PGP)*/ ?'+' :'-' ,
@@ -3883,9 +3894,11 @@ static int configure_session (struct command *cmd,
3883
3894
"%cANON-ECDH:"
3884
3895
"+ECDHE-RSA:+DHE-RSA:+ECDHE-ECDSA:+DHE-DSS:+RSA:" //TODO//
3885
3896
"%cCTYPE-X.509:"
3886
- "%cCTYPE-OPENPGP:"
3887
- "%cSRP:%cSRP-RSA:%cSRP-DSS" ,
3888
- anonpre_ok ?'+' :'-' ,
3897
+ "%cCTYPE-OPENPGP"
3898
+ #ifdef EXPERIMENTAL_SRP
3899
+ ":%cSRP:%cSRP-RSA:%cSRP-DSS"
3900
+ #endif
3901
+ ,anonpre_ok ?'+' :'-' ,
3889
3902
1 ?'+' :'-' ,
3890
3903
1 ?'+' :'-' ,
3891
3904
//TODO// Temporarily patched out SRP
@@ -4161,6 +4174,7 @@ static int setup_starttls_credentials (void) {
4161
4174
//
4162
4175
// Construct server credentials for SRP authentication
4163
4176
gtls_errno = gtls_errno_stack0 ; // Don't pop, just forget last failures
4177
+ #ifdef EXPERIMENTAL_SRP
4164
4178
E_g2e ("Failed to allocate SRP server credentials" ,
4165
4179
gnutls_srp_allocate_server_credentials (
4166
4180
& srv_srpcred ));
@@ -4178,10 +4192,12 @@ static int setup_starttls_credentials (void) {
4178
4192
gnutls_srp_free_server_credentials (srv_srpcred );
4179
4193
srv_srpcred = NULL ;
4180
4194
}
4195
+ #endif
4181
4196
4182
4197
//
4183
4198
// Construct client credentials for SRP authentication
4184
4199
gtls_errno = gtls_errno_stack0 ; // Don't pop, just forget last failures
4200
+ #ifdef EXPERIMENTAL_SRP
4185
4201
E_g2e ("Failed to allocate SRP client credentials" ,
4186
4202
gnutls_srp_allocate_client_credentials (
4187
4203
& cli_srpcred ));
@@ -4197,6 +4213,7 @@ static int setup_starttls_credentials (void) {
4197
4213
gnutls_srp_free_client_credentials (cli_srpcred );
4198
4214
cli_srpcred = NULL ;
4199
4215
}
4216
+ #endif
4200
4217
4201
4218
//
4202
4219
// Construct server credentials for KDH authentication
@@ -4268,9 +4285,11 @@ static void cleanup_starttls_credentials (void) {
4268
4285
case GNUTLS_CRD_ANON :
4269
4286
gnutls_anon_free_server_credentials (crd -> cred );
4270
4287
break ;
4288
+ #ifdef EXPERIMENTAL_SRP
4271
4289
case GNUTLS_CRD_SRP :
4272
4290
gnutls_srp_free_server_credentials (crd -> cred );
4273
4291
break ;
4292
+ #endif
4274
4293
case GNUTLS_CRD_PSK :
4275
4294
case GNUTLS_CRD_IA :
4276
4295
//TODO: not handled
@@ -4290,9 +4309,11 @@ static void cleanup_starttls_credentials (void) {
4290
4309
case GNUTLS_CRD_ANON :
4291
4310
gnutls_anon_free_client_credentials (crd -> cred );
4292
4311
break ;
4312
+ #ifdef EXPERIMENTAL_SRP
4293
4313
case GNUTLS_CRD_SRP :
4294
4314
gnutls_srp_free_client_credentials (crd -> cred );
4295
4315
break ;
4316
+ #endif
4296
4317
case GNUTLS_CRD_PSK :
4297
4318
case GNUTLS_CRD_IA :
4298
4319
//TODO: not handled
@@ -4919,12 +4940,14 @@ fprintf (stderr, "ctlkey_unregister under ckn=%p at %d\n", (void *)ckn, __LINE__
4919
4940
got_remoteid = 0 ;
4920
4941
cmd -> vfystatus = GNUTLS_CERT_SIGNER_NOT_FOUND ;
4921
4942
break ;
4943
+ #ifdef EXPERIMENTAL_SRP
4922
4944
case GNUTLS_CRD_SRP :
4923
4945
// Got a credential, validation follows later on
4924
4946
//TODO// SRP does not really auth the server
4925
4947
got_remoteid = 1 ;
4926
4948
cmd -> vfystatus = GNUTLS_CERT_SIGNER_NOT_FOUND ;
4927
4949
break ;
4950
+ #endif
4928
4951
case GNUTLS_CRD_ANON :
4929
4952
// Did not get a credential, perhaps due to anonpre
4930
4953
got_remoteid = 0 ;
0 commit comments