summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authortb <>2022-01-05 20:44:12 +0000
committertb <>2022-01-05 20:44:12 +0000
commiteec5bb5de6de08ddb9bb4b14098bdf74403b758a (patch)
tree3114e081ea1980d87910f9f2a812d86056c9180b /src
parent46f215caacbd231e0103614978e9720eb4c4a993 (diff)
downloadopenbsd-eec5bb5de6de08ddb9bb4b14098bdf74403b758a.tar.gz
openbsd-eec5bb5de6de08ddb9bb4b14098bdf74403b758a.tar.bz2
openbsd-eec5bb5de6de08ddb9bb4b14098bdf74403b758a.zip
Prepare to provide a number of RSA accessors
This adds RSA_get0_{n,e,d,p,q,dmp1,dmq1,iqmp,pss_params}() which will be exposed in the upcoming bump. ok inoguchi jsing
Diffstat (limited to 'src')
-rw-r--r--src/lib/libcrypto/rsa/rsa.h13
-rw-r--r--src/lib/libcrypto/rsa/rsa_lib.c56
2 files changed, 67 insertions, 2 deletions
diff --git a/src/lib/libcrypto/rsa/rsa.h b/src/lib/libcrypto/rsa/rsa.h
index 78ac04cf96..9dea6c37c0 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.51 2019/11/04 12:30:56 jsing Exp $ */ 1/* $OpenBSD: rsa.h,v 1.52 2022/01/05 20:44:12 tb 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 *
@@ -470,6 +470,17 @@ void RSA_get0_crt_params(const RSA *r, const BIGNUM **dmp1, const BIGNUM **dmq1,
470int RSA_set0_crt_params(RSA *r, BIGNUM *dmp1, BIGNUM *dmq1, BIGNUM *iqmp); 470int RSA_set0_crt_params(RSA *r, BIGNUM *dmp1, BIGNUM *dmq1, BIGNUM *iqmp);
471void RSA_get0_factors(const RSA *r, const BIGNUM **p, const BIGNUM **q); 471void RSA_get0_factors(const RSA *r, const BIGNUM **p, const BIGNUM **q);
472int RSA_set0_factors(RSA *r, BIGNUM *p, BIGNUM *q); 472int RSA_set0_factors(RSA *r, BIGNUM *p, BIGNUM *q);
473#if defined(LIBRESSL_OPAQUE_RSA) || defined(LIBRESSL_CRYPTO_INTERNAL)
474const BIGNUM *RSA_get0_n(const RSA *r);
475const BIGNUM *RSA_get0_e(const RSA *r);
476const BIGNUM *RSA_get0_d(const RSA *r);
477const BIGNUM *RSA_get0_p(const RSA *r);
478const BIGNUM *RSA_get0_q(const RSA *r);
479const BIGNUM *RSA_get0_dmp1(const RSA *r);
480const BIGNUM *RSA_get0_dmq1(const RSA *r);
481const BIGNUM *RSA_get0_iqmp(const RSA *r);
482const RSA_PSS_PARAMS *RSA_get0_pss_params(const RSA *r);
483#endif
473void RSA_clear_flags(RSA *r, int flags); 484void RSA_clear_flags(RSA *r, int flags);
474int RSA_test_flags(const RSA *r, int flags); 485int RSA_test_flags(const RSA *r, int flags);
475void RSA_set_flags(RSA *r, int flags); 486void RSA_set_flags(RSA *r, int flags);
diff --git a/src/lib/libcrypto/rsa/rsa_lib.c b/src/lib/libcrypto/rsa/rsa_lib.c
index 0b76aae398..92b2f32d61 100644
--- a/src/lib/libcrypto/rsa/rsa_lib.c
+++ b/src/lib/libcrypto/rsa/rsa_lib.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: rsa_lib.c,v 1.40 2020/01/17 10:40:03 inoguchi Exp $ */ 1/* $OpenBSD: rsa_lib.c,v 1.41 2022/01/05 20:44:12 tb 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 *
@@ -336,6 +336,60 @@ RSA_set0_factors(RSA *r, BIGNUM *p, BIGNUM *q)
336 return 1; 336 return 1;
337} 337}
338 338
339const BIGNUM *
340RSA_get0_n(const RSA *r)
341{
342 return r->n;
343}
344
345const BIGNUM *
346RSA_get0_e(const RSA *r)
347{
348 return r->e;
349}
350
351const BIGNUM *
352RSA_get0_d(const RSA *r)
353{
354 return r->d;
355}
356
357const BIGNUM *
358RSA_get0_p(const RSA *r)
359{
360 return r->p;
361}
362
363const BIGNUM *
364RSA_get0_q(const RSA *r)
365{
366 return r->q;
367}
368
369const BIGNUM *
370RSA_get0_dmp1(const RSA *r)
371{
372 return r->dmp1;
373}
374
375const BIGNUM *
376RSA_get0_dmq1(const RSA *r)
377{
378 return r->dmq1;
379}
380
381const BIGNUM *
382RSA_get0_iqmp(const RSA *r)
383{
384 return r->iqmp;
385}
386
387const RSA_PSS_PARAMS *
388RSA_get0_pss_params(const RSA *r)
389{
390 return r->pss;
391}
392
339void 393void
340RSA_clear_flags(RSA *r, int flags) 394RSA_clear_flags(RSA *r, int flags)
341{ 395{