1 /*@ S-nail - a mail user agent derived from Berkeley Mail.
2 *@ Implementation of privacy.h.
4 * Copyright (c) 2015 - 2020 Steffen (Daode) Nurpmeso <steffen@sdaoden.eu>.
5 * SPDX-License-Identifier: ISC
7 * Permission to use, copy, modify, and/or distribute this software for any
8 * purpose with or without fee is hereby granted, provided that the above
9 * copyright notice and this permission notice appear in all copies.
11 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
12 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
13 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
14 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
15 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
16 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
17 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
20 #define su_FILE privacy
22 #define mx_SOURCE_PRIVACY
24 #ifndef mx_HAVE_AMALGAMATION
29 #if defined mx_HAVE_XTLS
33 #include "mx/privacy.h"
34 #include "su/code-in.h"
37 mx_privacy_sign_is_desired(void){
41 rv
= ok_blook(smime_sign
); /* TODO USER@HOST <-> *from* +++!!! */
44 n_err(_("No TLS support compiled in\n"));
54 mx_privacy_sign(FILE *ip
, char const *addr
){
60 n_err(_("No *from* address for signing specified\n"));
66 rv
= smime_sign(ip
, addr
);
68 n_err(_("No TLS support compiled in\n"));
78 mx_privacy_verify(struct message
*mp
, int nr
){
89 mx_privacy_encrypt_try(FILE *ip
, char const *to
){
90 char const k
[] = "smime-encrypt-";
98 vs
= n_lofi_alloc(sizeof(k
)-1 + nl
+1);
99 su_mem_copy(vs
, k
, sizeof(k
) -1);
100 su_mem_copy(&vs
[sizeof(k
) -1], to
, nl
+1);
102 if((cp
= n_var_vlook(vs
, FAL0
)) != NIL
){
104 rv
= smime_encrypt(ip
, cp
, to
);
107 n_err(_("No TLS support compiled in\n"));
119 mx_privacy_encrypt_is_forced(void){
123 rv
= ok_blook(smime_force_encryption
);
129 mx_privacy_decrypt(struct message
*mp
, char const *to
, char const *cc
,
130 boole is_a_verify_call
){
136 UNUSED(is_a_verify_call
);
142 #include "su/code-ou.h"
143 #endif /* mx_HAVE_XTLS */