 apps/ciphers.c | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/apps/ciphers.c b/apps/ciphers.c
index 12dca50..d7a319f 100644
--- a/apps/ciphers.c
+++ b/apps/ciphers.c
@@ -70,6 +70,7 @@ typedef enum OPTION_choice {
     OPT_TLS1_1,
     OPT_TLS1_2,
     OPT_PSK,
+    OPT_SRP,
     OPT_V, OPT_UPPER_V, OPT_S
 } OPTION_CHOICE;
 
@@ -90,6 +91,9 @@ OPTIONS ciphers_options[] = {
 #ifndef OPENSSL_NO_PSK
     {"psk", OPT_PSK, '-', "include ciphersuites requiring PSK"},
 #endif
+#ifndef OPENSSL_NO_SRP
+    {"srp", OPT_SRP, '-', "include ciphersuites requiring SRP"},
+#endif
     {NULL}
 };
 
@@ -100,6 +104,10 @@ static unsigned int dummy_psk(SSL *ssl, const char *hint, char *identity,
 {
     return 0;
 }
+static char *dummy_srp(SSL *ssl, void *arg)
+{
+    return "";
+}
 
 int ciphers_main(int argc, char **argv)
 {
@@ -114,6 +122,9 @@ int ciphers_main(int argc, char **argv)
 #ifndef OPENSSL_NO_PSK
     int psk = 0;
 #endif
+#ifndef OPENSSL_NO_SRP
+    int srp = 0;
+#endif
     const char *p;
     char *ciphers = NULL, *prog;
     char buf[512];
@@ -163,6 +174,10 @@ int ciphers_main(int argc, char **argv)
 #ifndef OPENSSL_NO_PSK
             psk = 1;
 #endif
+        case OPT_SRP:
+#ifndef OPENSSL_NO_SRP
+            srp = 1;
+#endif
             break;
         }
     }
@@ -181,6 +196,10 @@ int ciphers_main(int argc, char **argv)
     if (psk)
         SSL_CTX_set_psk_client_callback(ctx, dummy_psk);
 #endif
+#ifndef OPENSSL_NO_SRP
+    if (srp)
+        SSL_CTX_set_srp_client_pwd_callback(ctx, dummy_srp);
+#endif
     if (ciphers != NULL) {
         if (!SSL_CTX_set_cipher_list(ctx, ciphers)) {
             BIO_printf(bio_err, "Error in cipher list\n");
