property: Move global default properties to the library context.
[openssl.git] / crypto / dsa / dsa_prn.c
1 /*
2  * Copyright 2006-2020 The OpenSSL Project Authors. All Rights Reserved.
3  *
4  * Licensed under the Apache License 2.0 (the "License").  You may not use
5  * this file except in compliance with the License.  You can obtain a copy
6  * in the file LICENSE in the source distribution or at
7  * https://www.openssl.org/source/license.html
8  */
9
10 /*
11  * DSA low level APIs are deprecated for public use, but still ok for
12  * internal use.
13  */
14 #include "internal/deprecated.h"
15
16 #include <stdio.h>
17 #include "internal/cryptlib.h"
18 #include <openssl/evp.h>
19 #include <openssl/dsa.h>
20
21 #ifndef OPENSSL_NO_STDIO
22 int DSA_print_fp(FILE *fp, const DSA *x, int off)
23 {
24     BIO *b;
25     int ret;
26
27     if ((b = BIO_new(BIO_s_file())) == NULL) {
28         DSAerr(DSA_F_DSA_PRINT_FP, ERR_R_BUF_LIB);
29         return 0;
30     }
31     BIO_set_fp(b, fp, BIO_NOCLOSE);
32     ret = DSA_print(b, x, off);
33     BIO_free(b);
34     return ret;
35 }
36
37 int DSAparams_print_fp(FILE *fp, const DSA *x)
38 {
39     BIO *b;
40     int ret;
41
42     if ((b = BIO_new(BIO_s_file())) == NULL) {
43         DSAerr(DSA_F_DSAPARAMS_PRINT_FP, ERR_R_BUF_LIB);
44         return 0;
45     }
46     BIO_set_fp(b, fp, BIO_NOCLOSE);
47     ret = DSAparams_print(b, x);
48     BIO_free(b);
49     return ret;
50 }
51 #endif
52
53 int DSA_print(BIO *bp, const DSA *x, int off)
54 {
55     EVP_PKEY *pk;
56     int ret;
57     pk = EVP_PKEY_new();
58     if (pk == NULL || !EVP_PKEY_set1_DSA(pk, (DSA *)x))
59         return 0;
60     ret = EVP_PKEY_print_private(bp, pk, off, NULL);
61     EVP_PKEY_free(pk);
62     return ret;
63 }
64
65 int DSAparams_print(BIO *bp, const DSA *x)
66 {
67     EVP_PKEY *pk;
68     int ret;
69     pk = EVP_PKEY_new();
70     if (pk == NULL || !EVP_PKEY_set1_DSA(pk, (DSA *)x))
71         return 0;
72     ret = EVP_PKEY_print_params(bp, pk, 4, NULL);
73     EVP_PKEY_free(pk);
74     return ret;
75 }