Prepare to provide DSA_get0_{p,q,g,{priv,pub}_key}()
authortb <tb@openbsd.org>
Wed, 5 Jan 2022 20:33:49 +0000 (20:33 +0000)
committertb <tb@openbsd.org>
Wed, 5 Jan 2022 20:33:49 +0000 (20:33 +0000)
ok inoguchi jsing

lib/libcrypto/dsa/dsa.h
lib/libcrypto/dsa/dsa_lib.c

index 15536f6..391f02c 100644 (file)
@@ -1,4 +1,4 @@
-/* $OpenBSD: dsa.h,v 1.31 2021/11/29 20:13:25 tb Exp $ */
+/* $OpenBSD: dsa.h,v 1.32 2022/01/05 20:33:49 tb Exp $ */
 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
  * All rights reserved.
  *
@@ -267,6 +267,13 @@ void DSA_get0_pqg(const DSA *d, const BIGNUM **p, const BIGNUM **q,
 int DSA_set0_pqg(DSA *d, BIGNUM *p, BIGNUM *q, BIGNUM *g);
 void DSA_get0_key(const DSA *d, const BIGNUM **pub_key, const BIGNUM **priv_key);
 int DSA_set0_key(DSA *d, BIGNUM *pub_key, BIGNUM *priv_key);
+#if defined(LIBRESSL_OPAQUE_DSA) || defined(LIBRESSL_CRYPTO_INTERNAL)
+const BIGNUM *DSA_get0_p(const DSA *d);
+const BIGNUM *DSA_get0_q(const DSA *d);
+const BIGNUM *DSA_get0_g(const DSA *d);
+const BIGNUM *DSA_get0_pub_key(const DSA *d);
+const BIGNUM *DSA_get0_priv_key(const DSA *d);
+#endif
 void DSA_clear_flags(DSA *d, int flags);
 int DSA_test_flags(const DSA *d, int flags);
 void DSA_set_flags(DSA *d, int flags);
index d5fdd6e..146d2cc 100644 (file)
@@ -1,4 +1,4 @@
-/* $OpenBSD: dsa_lib.c,v 1.29 2018/04/14 07:09:21 tb Exp $ */
+/* $OpenBSD: dsa_lib.c,v 1.30 2022/01/05 20:33:49 tb Exp $ */
 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
  * All rights reserved.
  *
@@ -361,6 +361,36 @@ DSA_set0_key(DSA *d, BIGNUM *pub_key, BIGNUM *priv_key)
        return 1;
 }
 
+const BIGNUM *
+DSA_get0_p(const DSA *d)
+{
+       return d->p;
+}
+
+const BIGNUM *
+DSA_get0_q(const DSA *d)
+{
+       return d->q;
+}
+
+const BIGNUM *
+DSA_get0_g(const DSA *d)
+{
+       return d->g;
+}
+
+const BIGNUM *
+DSA_get0_pub_key(const DSA *d)
+{
+       return d->pub_key;
+}
+
+const BIGNUM *
+DSA_get0_priv_key(const DSA *d)
+{
+       return d->priv_key;
+}
+
 void
 DSA_clear_flags(DSA *d, int flags)
 {