Disk ARchive 2.8.3
Full featured and portable backup and archiving tool
Loading...
Searching...
No Matches
src/libdar/crypto.hpp
Go to the documentation of this file.
1//*********************************************************************/
2// dar - disk archive - a backup/restoration program
3// Copyright (C) 2002-2026 Denis Corbin
4//
5// This program is free software; you can redistribute it and/or
6// modify it under the terms of the GNU General Public License
7// as published by the Free Software Foundation; either version 2
8// of the License, or (at your option) any later version.
9//
10// This program is distributed in the hope that it will be useful,
11// but WITHOUT ANY WARRANTY; without even the implied warranty of
12// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13// GNU General Public License for more details.
14//
15// You should have received a copy of the GNU General Public License
16// along with this program; if not, write to the Free Software
17// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18//
19// to contact the author, see the AUTHOR file
20/*********************************************************************/
21
25
26#ifndef CRYPTO_HPP
27#define CRYPTO_HPP
28
29extern "C"
30{
31
32}
33
34#include "../my_config.h"
35#include <string>
36
37#include "datetime.hpp"
38
39#include <list>
40
41namespace libdar
42{
43
46
48
59
61
62 struct signator
63 {
65 {
66 good,
67 bad,
69 error
70 };
72 {
73 valid,
74 expired,
75 revoked
76 };
79 std::string fingerprint;
82 bool operator < (const signator & ref) const { return fingerprint < ref.fingerprint; };
83 bool operator == (const signator & ref) const { return result == ref.result && key_validity == ref.key_validity && fingerprint == ref.fingerprint && signature_expiration_date == ref.signature_expiration_date; };
84 };
85
87 extern std::string crypto_algo_2_string(crypto_algo algo);
88
90 extern char crypto_algo_2_char(crypto_algo a);
91
93 extern crypto_algo char_2_crypto_algo(char a);
94
95
97 extern bool same_signatories(const std::list<signator> & a, const std::list<signator> & b);
98
100
101} // end of namespace
102
103#endif
char crypto_algo_2_char(crypto_algo a)
convert crypto algo to char
std::string crypto_algo_2_string(crypto_algo algo)
convert crypto algo to readable std::string
crypto_algo char_2_crypto_algo(char a)
convert char to crypto algo
crypto_algo
the different cypher available for encryption (strong or weak)
bool same_signatories(const std::list< signator > &a, const std::list< signator > &b)
return whether the two signators lists match
@ camellia256
camellia 256 strong encryption
@ serpent256
serpent 256 strong encryption
@ twofish256
twofish 256 strong encryption
include macro defined by the configure script and some specific additional ones
libdar namespace encapsulate all libdar symbols
this file contains the definition of class datetime that stores unix times in a portable way
result_t result
status of the signing
@ expired
the key we have has expired
@ valid
the key we have is neither expired nor revoked
@ revoked
the key we have has been revoked
key_validity_t key_validity
validity of the key used to verify the signature
datetime signing_date
date of signature
std::string fingerprint
fingerprint of the key
@ unknown_key
no key found to check the signature
@ error
signature failed to be checked for other error
@ bad
key correct bug signature tempered
datetime signature_expiration_date
date of expiration of this signature