summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorschwarze <>2020-05-16 00:11:55 +0000
committerschwarze <>2020-05-16 00:11:55 +0000
commit0a1dcbe05d21795b7042ce242cc0c6b8a960f3a2 (patch)
treec703989ab15bde1f9af3fca902816939afa8c2ff
parent0db3b24cb3040a840e69e6aa9611d989c9ec9f6b (diff)
downloadopenbsd-0a1dcbe05d21795b7042ce242cc0c6b8a960f3a2.tar.gz
openbsd-0a1dcbe05d21795b7042ce242cc0c6b8a960f3a2.tar.bz2
openbsd-0a1dcbe05d21795b7042ce242cc0c6b8a960f3a2.zip
document PKCS7_set_type(3);
OK beck@, who was amused by the "darkly comic value of reading" it
-rw-r--r--src/lib/libcrypto/man/Makefile3
-rw-r--r--src/lib/libcrypto/man/PKCS7_new.35
-rw-r--r--src/lib/libcrypto/man/PKCS7_set_type.3118
3 files changed, 123 insertions, 3 deletions
diff --git a/src/lib/libcrypto/man/Makefile b/src/lib/libcrypto/man/Makefile
index a50e9594c5..5cb80ee5c3 100644
--- a/src/lib/libcrypto/man/Makefile
+++ b/src/lib/libcrypto/man/Makefile
@@ -1,4 +1,4 @@
1# $OpenBSD: Makefile,v 1.160 2019/11/02 15:12:31 schwarze Exp $ 1# $OpenBSD: Makefile,v 1.161 2020/05/16 00:11:55 schwarze Exp $
2 2
3.include <bsd.own.mk> 3.include <bsd.own.mk>
4 4
@@ -217,6 +217,7 @@ MAN= \
217 PKCS7_decrypt.3 \ 217 PKCS7_decrypt.3 \
218 PKCS7_encrypt.3 \ 218 PKCS7_encrypt.3 \
219 PKCS7_new.3 \ 219 PKCS7_new.3 \
220 PKCS7_set_type.3 \
220 PKCS7_sign.3 \ 221 PKCS7_sign.3 \
221 PKCS7_sign_add_signer.3 \ 222 PKCS7_sign_add_signer.3 \
222 PKCS7_verify.3 \ 223 PKCS7_verify.3 \
diff --git a/src/lib/libcrypto/man/PKCS7_new.3 b/src/lib/libcrypto/man/PKCS7_new.3
index d77ab73f75..324c96cfc9 100644
--- a/src/lib/libcrypto/man/PKCS7_new.3
+++ b/src/lib/libcrypto/man/PKCS7_new.3
@@ -1,4 +1,4 @@
1.\" $OpenBSD: PKCS7_new.3,v 1.6 2019/06/10 09:49:48 schwarze Exp $ 1.\" $OpenBSD: PKCS7_new.3,v 1.7 2020/05/16 00:11:55 schwarze Exp $
2.\" 2.\"
3.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org> 3.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
4.\" 4.\"
@@ -14,7 +14,7 @@
14.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 14.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 15.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16.\" 16.\"
17.Dd $Mdocdate: June 10 2019 $ 17.Dd $Mdocdate: May 16 2020 $
18.Dt PKCS7_NEW 3 18.Dt PKCS7_NEW 3
19.Os 19.Os
20.Sh NAME 20.Sh NAME
@@ -249,6 +249,7 @@ frees
249.Xr PKCS7_decrypt 3 , 249.Xr PKCS7_decrypt 3 ,
250.Xr PKCS7_encrypt 3 , 250.Xr PKCS7_encrypt 3 ,
251.Xr PKCS7_ISSUER_AND_SERIAL_digest 3 , 251.Xr PKCS7_ISSUER_AND_SERIAL_digest 3 ,
252.Xr PKCS7_set_type 3 ,
252.Xr PKCS7_sign 3 , 253.Xr PKCS7_sign 3 ,
253.Xr PKCS7_sign_add_signer 3 , 254.Xr PKCS7_sign_add_signer 3 ,
254.Xr PKCS7_verify 3 , 255.Xr PKCS7_verify 3 ,
diff --git a/src/lib/libcrypto/man/PKCS7_set_type.3 b/src/lib/libcrypto/man/PKCS7_set_type.3
new file mode 100644
index 0000000000..a666b866ff
--- /dev/null
+++ b/src/lib/libcrypto/man/PKCS7_set_type.3
@@ -0,0 +1,118 @@
1.\" $OpenBSD: PKCS7_set_type.3,v 1.1 2020/05/16 00:11:55 schwarze Exp $
2.\"
3.\" Copyright (c) 2020 Ingo Schwarze <schwarze@openbsd.org>
4.\"
5.\" Permission to use, copy, modify, and distribute this software for any
6.\" purpose with or without fee is hereby granted, provided that the above
7.\" copyright notice and this permission notice appear in all copies.
8.\"
9.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16.\"
17.Dd $Mdocdate: May 16 2020 $
18.Dt PKCS7_SET_TYPE 3
19.Os
20.Sh NAME
21.Nm PKCS7_set_type ,
22.Nm PKCS7_set0_type_other
23.Nd initialize type of PKCS#7 ContentInfo
24.Sh SYNOPSIS
25.In openssl/pkcs7.h
26.Ft int
27.Fo PKCS7_set_type
28.Fa "PKCS7 *p7"
29.Fa "int type"
30.Fc
31.Ft int
32.Fo PKCS7_set0_type_other
33.Fa "PKCS7 *p7"
34.Fa "int type"
35.Fa "ASN1_TYPE *content"
36.Fc
37.Sh DESCRIPTION
38These functions set the
39.Fa type
40of an unused
41.Vt ContentInfo
42structure
43.Fa p7 .
44.Pp
45The function
46.Fn PKCS7_set_type
47also allocates and initializes an empty child object in
48.Fa p7 .
49The
50.Fa type
51argument can be any of these NIDs,
52creating a child object of the indicated data type:
53.Pp
54.Bl -column NID_pkcs7_signedAndEnveloped PKCS7_SIGN_ENVELOPE n.a. -compact
55.It Fa type No argument Ta data type of child Ta version
56.It Dv NID_pkcs7_data Ta Vt ASN1_OCTET_STRING Ta n.a.
57.It Dv NID_pkcs7_digest Ta Vt PKCS7_DIGEST Ta 0
58.It Dv NID_pkcs7_encrypted Ta Vt PKCS7_ENCRYPT Ta 0
59.It Dv NID_pkcs7_enveloped Ta Vt PKCS7_ENVELOPE Ta 0
60.It Dv NID_pkcs7_signed Ta Vt PKCS7_SIGNED Ta 1
61.It Dv NID_pkcs7_signedAndEnveloped Ta Vt PKCS7_SIGN_ENVELOPE Ta 1
62.El
63.Pp
64If the provided
65.Fa type
66is invalid,
67.Fa p7
68remains unchanged and
69.Fn PKCS7_set_type
70fails.
71.Pp
72If memory allocation fails,
73.Fn PKCS7_set_type
74fails and
75.Fa p7
76may remain in an inconsistent state.
77.Pp
78The function
79.Fn PKCS7_set0_type_other
80accepts an arbitrary NID as the
81.Fa type
82and also sets the
83.Fa content ,
84neither checking it in any way nor copying it.
85.Pp
86For both functions, the rest of the internal state of
87.Fa p7
88remains unchanged.
89.Sh RETURN VALUES
90The function
91.Fn PKCS7_set_type
92returns 1 on success or 0 on failure.
93.Pp
94The function
95.Fn PKCS7_set0_type_other
96does no error handling at all and always returns 1.
97.Sh SEE ALSO
98.Xr ASN1_OCTET_STRING_new 3 ,
99.Xr ASN1_TYPE_new 3 ,
100.Xr PKCS7_encrypt 3 ,
101.Xr PKCS7_new 3 ,
102.Xr PKCS7_sign 3
103.Sh HISTORY
104The function
105.Fn PKCS7_set_type
106first appeared in SSLeay 0.8.1 and
107.Fn PKCS7_set0_type_other
108in OpenSSL 0.9.8.
109Both have been available since
110.Ox 2.4 .
111.Sh CAVEATS
112If
113.Fa p7
114has already been in use before being passed to one of these functions,
115it will report success even though it leaks memory.
116Later on, if other functions try to use
117.Fa p7
118in its former role, they are likely to misbehave.