summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/rsa
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libcrypto/rsa')
-rw-r--r--src/lib/libcrypto/rsa/rsa.h4
-rw-r--r--src/lib/libcrypto/rsa/rsa_meth.c20
2 files changed, 22 insertions, 2 deletions
diff --git a/src/lib/libcrypto/rsa/rsa.h b/src/lib/libcrypto/rsa/rsa.h
index 23929aafb9..d2df1a92d3 100644
--- a/src/lib/libcrypto/rsa/rsa.h
+++ b/src/lib/libcrypto/rsa/rsa.h
@@ -1,4 +1,4 @@
1/* $OpenBSD: rsa.h,v 1.38 2018/03/17 15:12:56 tb Exp $ */ 1/* $OpenBSD: rsa.h,v 1.39 2018/09/12 06:35:38 djm Exp $ */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
@@ -433,10 +433,12 @@ RSA *RSAPrivateKey_dup(RSA *rsa);
433RSA_METHOD *RSA_meth_new(const char *name, int flags); 433RSA_METHOD *RSA_meth_new(const char *name, int flags);
434void RSA_meth_free(RSA_METHOD *meth); 434void RSA_meth_free(RSA_METHOD *meth);
435RSA_METHOD *RSA_meth_dup(const RSA_METHOD *meth); 435RSA_METHOD *RSA_meth_dup(const RSA_METHOD *meth);
436int RSA_meth_set1_name(RSA_METHOD *meth, const char *name);
436int RSA_meth_set_priv_enc(RSA_METHOD *meth, int (*priv_enc)(int flen, 437int RSA_meth_set_priv_enc(RSA_METHOD *meth, int (*priv_enc)(int flen,
437 const unsigned char *from, unsigned char *to, RSA *rsa, int padding)); 438 const unsigned char *from, unsigned char *to, RSA *rsa, int padding));
438int RSA_meth_set_priv_dec(RSA_METHOD *meth, int (*priv_dec)(int flen, 439int RSA_meth_set_priv_dec(RSA_METHOD *meth, int (*priv_dec)(int flen,
439 const unsigned char *from, unsigned char *to, RSA *rsa, int padding)); 440 const unsigned char *from, unsigned char *to, RSA *rsa, int padding));
441int (*RSA_meth_get_finish(const RSA_METHOD *meth))(RSA *rsa);
440int RSA_meth_set_finish(RSA_METHOD *meth, int (*finish)(RSA *rsa)); 442int RSA_meth_set_finish(RSA_METHOD *meth, int (*finish)(RSA *rsa));
441 443
442/* BEGIN ERROR CODES */ 444/* BEGIN ERROR CODES */
diff --git a/src/lib/libcrypto/rsa/rsa_meth.c b/src/lib/libcrypto/rsa/rsa_meth.c
index 0e52799a38..ae613cc65c 100644
--- a/src/lib/libcrypto/rsa/rsa_meth.c
+++ b/src/lib/libcrypto/rsa/rsa_meth.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: rsa_meth.c,v 1.1 2018/03/17 15:12:56 tb Exp $ */ 1/* $OpenBSD: rsa_meth.c,v 1.2 2018/09/12 06:35:38 djm Exp $ */
2/* 2/*
3 * Copyright (c) 2018 Theo Buehler <tb@openbsd.org> 3 * Copyright (c) 2018 Theo Buehler <tb@openbsd.org>
4 * 4 *
@@ -63,6 +63,24 @@ RSA_meth_dup(const RSA_METHOD *meth)
63} 63}
64 64
65int 65int
66RSA_meth_set1_name(RSA_METHOD *meth, const char *name)
67{
68 char *copy;
69
70 if ((copy = strdup(name)) == NULL)
71 return 0;
72 free((char *)meth->name);
73 meth->name = copy;
74 return 1;
75}
76
77int
78(*RSA_meth_get_finish(const RSA_METHOD *meth))(RSA *rsa)
79{
80 return meth->finish;
81}
82
83int
66RSA_meth_set_priv_enc(RSA_METHOD *meth, int (*priv_enc)(int flen, 84RSA_meth_set_priv_enc(RSA_METHOD *meth, int (*priv_enc)(int flen,
67 const unsigned char *from, unsigned char *to, RSA *rsa, int padding)) 85 const unsigned char *from, unsigned char *to, RSA *rsa, int padding))
68{ 86{