monotone

monotone Mtn Source Tree

Root/botan/pk_util.cpp

1/*************************************************
2* PK Utility Classes Source File *
3* (C) 1999-2005 The Botan Project *
4*************************************************/
5
6#include <botan/pk_util.h>
7
8namespace Botan {
9
10/*************************************************
11* Encode a message *
12*************************************************/
13SecureVector<byte> EME::encode(const byte msg[], u32bit msg_len,
14 u32bit key_bits) const
15 {
16 return pad(msg, msg_len, key_bits);
17 }
18
19/*************************************************
20* Encode a message *
21*************************************************/
22SecureVector<byte> EME::encode(const MemoryRegion<byte>& msg,
23 u32bit key_bits) const
24 {
25 return pad(msg, msg.size(), key_bits);
26 }
27
28/*************************************************
29* Decode a message *
30*************************************************/
31SecureVector<byte> EME::decode(const byte msg[], u32bit msg_len,
32 u32bit key_bits) const
33 {
34 return unpad(msg, msg_len, key_bits);
35 }
36
37/*************************************************
38* Decode a message *
39*************************************************/
40SecureVector<byte> EME::decode(const MemoryRegion<byte>& msg,
41 u32bit key_bits) const
42 {
43 return unpad(msg, msg.size(), key_bits);
44 }
45
46/*************************************************
47* Default signature decoding *
48*************************************************/
49bool EMSA::verify(const MemoryRegion<byte>& coded,
50 const MemoryRegion<byte>& raw,
51 u32bit key_bits) throw()
52 {
53 try {
54 return (coded == encoding_of(raw, key_bits));
55 }
56 catch(Invalid_Argument)
57 {
58 return false;
59 }
60 }
61
62/*************************************************
63* Derive a key *
64*************************************************/
65SecureVector<byte> KDF::derive_key(u32bit key_len,
66 const MemoryRegion<byte>& secret,
67 const std::string& salt) const
68 {
69 return derive_key(key_len, secret, secret.size(),
70 (const byte*)salt.c_str(), salt.length());
71 }
72
73/*************************************************
74* Derive a key *
75*************************************************/
76SecureVector<byte> KDF::derive_key(u32bit key_len,
77 const MemoryRegion<byte>& secret,
78 const byte salt[], u32bit salt_len) const
79 {
80 return derive_key(key_len, secret.begin(), secret.size(),
81 salt, salt_len);
82 }
83
84/*************************************************
85* Derive a key *
86*************************************************/
87SecureVector<byte> KDF::derive_key(u32bit key_len,
88 const MemoryRegion<byte>& secret,
89 const MemoryRegion<byte>& salt) const
90 {
91 return derive_key(key_len, secret.begin(), secret.size(),
92 salt.begin(), salt.size());
93 }
94
95/*************************************************
96* Derive a key *
97*************************************************/
98SecureVector<byte> KDF::derive_key(u32bit key_len,
99 const byte secret[], u32bit secret_len,
100 const std::string& salt) const
101 {
102 return derive_key(key_len, secret, secret_len,
103 (const byte*)salt.c_str(), salt.length());
104 }
105
106/*************************************************
107* Derive a key *
108*************************************************/
109SecureVector<byte> KDF::derive_key(u32bit key_len,
110 const byte secret[], u32bit secret_len,
111 const byte salt[], u32bit salt_len) const
112 {
113 return derive(key_len, secret, secret_len, salt, salt_len);
114 }
115
116}

Archive Download this file

Branches

Tags

Quick Links:     www.monotone.ca    -     Downloads    -     Documentation    -     Wiki    -     Code Forge    -     Build Status