Botan
1.10.16
src
cert
cvc
cvc_cert.h
Go to the documentation of this file.
1
/*
2
* EAC1_1 CVC
3
* (C) 2008 Falko Strenzke
4
* 2008 Jack Lloyd
5
*
6
* Distributed under the terms of the Botan license
7
*/
8
9
#ifndef BOTAN_CVC_EAC_H__
10
#define BOTAN_CVC_EAC_H__
11
12
#include <botan/cvc_gen_cert.h>
13
#include <botan/ecdsa.h>
14
#include <string>
15
16
namespace
Botan
{
17
18
/**
19
* This class represents TR03110 (EAC) v1.1 CV Certificates
20
*/
21
class
BOTAN_DLL
EAC1_1_CVC
:
public
EAC1_1_gen_CVC
<EAC1_1_CVC>
//Signed_Object
22
{
23
public
:
24
friend
class
EAC1_1_obj
<
EAC1_1_CVC
>;
25
26
/**
27
* Get the CAR of the certificate.
28
* @result the CAR of the certificate
29
*/
30
ASN1_Car
get_car()
const
;
31
32
/**
33
* Get the CED of this certificate.
34
* @result the CED this certificate
35
*/
36
ASN1_Ced
get_ced()
const
;
37
38
/**
39
* Get the CEX of this certificate.
40
* @result the CEX this certificate
41
*/
42
ASN1_Cex
get_cex()
const
;
43
44
/**
45
* Get the CHAT value.
46
* @result the CHAT value
47
*/
48
u32bit
get_chat_value()
const
;
49
50
bool
operator==
(
const
EAC1_1_CVC
&)
const
;
51
52
/**
53
* Construct a CVC from a data source
54
* @param source the data source
55
*/
56
EAC1_1_CVC
(
DataSource
& source);
57
58
/**
59
* Construct a CVC from a file
60
* @param str the path to the certificate file
61
*/
62
EAC1_1_CVC
(
const
std::string& str);
63
64
virtual
~EAC1_1_CVC
() {}
65
private
:
66
void
force_decode();
67
EAC1_1_CVC
() {}
68
69
ASN1_Car
m_car;
70
ASN1_Ced
m_ced;
71
ASN1_Cex
m_cex;
72
byte
m_chat_val;
73
OID
m_chat_oid;
74
};
75
76
/*
77
* Comparison
78
*/
79
inline
bool
operator!=
(
EAC1_1_CVC
const
& lhs,
EAC1_1_CVC
const
& rhs)
80
{
81
return
!(lhs == rhs);
82
}
83
84
/**
85
* Create an arbitrary EAC 1.1 CVC.
86
* The desired key encoding must be set within the key (if applicable).
87
* @param signer the signer used to sign the certificate
88
* @param public_key the DER encoded public key to appear in
89
* the certificate
90
* @param car the CAR of the certificate
91
* @param chr the CHR of the certificate
92
* @param holder_auth_templ the holder authorization value byte to
93
* appear in the CHAT of the certificate
94
* @param ced the CED to appear in the certificate
95
* @param cex the CEX to appear in the certificate
96
* @param rng a random number generator
97
*/
98
EAC1_1_CVC
BOTAN_DLL
make_cvc_cert
(
PK_Signer
& signer,
99
const
MemoryRegion<byte>
& public_key,
100
ASN1_Car
const
& car,
101
ASN1_Chr
const
& chr,
102
byte
holder_auth_templ,
103
ASN1_Ced
ced,
104
ASN1_Cex
cex,
105
RandomNumberGenerator
& rng);
106
107
/**
108
* Decode an EAC encoding ECDSA key
109
*/
110
BOTAN_DLL
ECDSA_PublicKey
*
decode_eac1_1_key
(
const
MemoryRegion<byte>
& enc_key,
111
AlgorithmIdentifier
& sig_algo);
112
113
}
114
115
#endif
116
Botan::operator!=
bool operator!=(const OctetString &s1, const OctetString &s2)
Definition:
symkey.cpp:106
Botan::EAC1_1_CVC
Definition:
cvc_cert.h:21
Botan::RandomNumberGenerator
Definition:
rng.h:20
Botan::ASN1_Cex
Definition:
eac_asn_obj.h:139
Botan::operator==
bool operator==(const OctetString &s1, const OctetString &s2)
Definition:
symkey.cpp:98
Botan::DataSource
Definition:
data_src.h:20
Botan::make_cvc_cert
EAC1_1_CVC make_cvc_cert(PK_Signer &signer, MemoryRegion< byte > const &public_key, ASN1_Car const &car, ASN1_Chr const &chr, byte holder_auth_templ, ASN1_Ced ced, ASN1_Cex cex, RandomNumberGenerator &rng)
Definition:
cvc_cert.cpp:98
Botan::byte
unsigned char byte
Definition:
types.h:22
Botan::ECDSA_PublicKey
Definition:
ecdsa.h:22
Botan::MemoryRegion< byte >
Botan
Definition:
algo_base.h:14
Botan::ASN1_Car
Definition:
eac_asn_obj.h:201
Botan::decode_eac1_1_key
ECDSA_PublicKey * decode_eac1_1_key(const MemoryRegion< byte > &, AlgorithmIdentifier &)
Definition:
cvc_cert.cpp:91
Botan::EAC1_1_obj
Definition:
eac_obj.h:20
Botan::AlgorithmIdentifier
Definition:
alg_id.h:20
Botan::PK_Signer
Definition:
pubkey.h:123
Botan::OID
Definition:
asn1_oid.h:20
Botan::ASN1_Chr
Definition:
eac_asn_obj.h:214
Botan::ASN1_Ced
Definition:
eac_asn_obj.h:108
Botan::u32bit
unsigned int u32bit
Definition:
types.h:32
Botan::EAC1_1_gen_CVC
Definition:
cvc_gen_cert.h:23
Botan::EAC1_1_CVC::~EAC1_1_CVC
virtual ~EAC1_1_CVC()
Definition:
cvc_cert.h:64
Generated by
1.8.13