Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-src
Path: blob/main/crypto/openssl/providers/common/der/der_dsa_sig.c
48383 views
1
/*
2
* Copyright 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 <openssl/obj_mac.h>
17
#include "internal/packet.h"
18
#include "prov/der_dsa.h"
19
20
#define MD_CASE(name) \
21
case NID_##name: \
22
precompiled = ossl_der_oid_id_dsa_with_##name; \
23
precompiled_sz = sizeof(ossl_der_oid_id_dsa_with_##name); \
24
break;
25
26
int ossl_DER_w_algorithmIdentifier_DSA_with_MD(WPACKET *pkt, int tag,
27
DSA *dsa, int mdnid)
28
{
29
const unsigned char *precompiled = NULL;
30
size_t precompiled_sz = 0;
31
32
switch (mdnid) {
33
MD_CASE(sha1);
34
MD_CASE(sha224);
35
MD_CASE(sha256);
36
MD_CASE(sha384);
37
MD_CASE(sha512);
38
MD_CASE(sha3_224);
39
MD_CASE(sha3_256);
40
MD_CASE(sha3_384);
41
MD_CASE(sha3_512);
42
default:
43
return 0;
44
}
45
46
return ossl_DER_w_begin_sequence(pkt, tag)
47
/* No parameters (yet?) */
48
&& ossl_DER_w_precompiled(pkt, -1, precompiled, precompiled_sz)
49
&& ossl_DER_w_end_sequence(pkt, tag);
50
}
51
52