The unified diff between revisions [2df88abf..] and [818e3621..] is displayed below. It can also be downloaded as a raw diff.
This diff has been restricted to the following files: 'database.cc'
#
#
# patch "database.cc"
# from [26823fb71c06adf8194ed261513d7fe268d0c77d]
# to [b9bfc2cef4e1561d13cfbf9b2f3b39eb42478b68]
#
============================================================
--- database.cc 26823fb71c06adf8194ed261513d7fe268d0c77d
+++ database.cc b9bfc2cef4e1561d13cfbf9b2f3b39eb42478b68
@@ -377,12 +377,12 @@ private:
void get_certs(id const & ident,
cert_name const & name,
- base64<cert_value> const & val,
+ cert_value const & val,
vector<cert> & certs,
string const & table);
void get_certs(cert_name const & name,
- base64<cert_value> const & val,
+ cert_value const & val,
vector<cert> & certs,
string const & table);
@@ -2645,14 +2645,14 @@ database::get_pubkey(id const & hash,
void
database::get_pubkey(id const & hash,
rsa_keypair_id & id,
- base64<rsa_pub_key> & pub_encoded)
+ rsa_pub_key & pub)
{
results res;
imp->fetch(res, 2, one_row,
query("SELECT id, keydata FROM public_keys WHERE hash = ?")
% blob(hash()));
id = rsa_keypair_id(res[0][0]);
- encode_base64(rsa_pub_key(res[0][1]), pub_encoded);
+ pub = rsa_pub_key(res[0][1]);
}
void
@@ -2666,24 +2666,15 @@ database::get_key(rsa_keypair_id const &
pub = rsa_pub_key(res[0][0]);
}
-void
-database::get_key(rsa_keypair_id const & pub_id,
- base64<rsa_pub_key> & pub_encoded)
-{
- rsa_pub_key pub;
- get_key(pub_id, pub);
- encode_base64(pub, pub_encoded);
-}
-
bool
database::put_key(rsa_keypair_id const & pub_id,
- base64<rsa_pub_key> const & pub_encoded)
+ rsa_pub_key const & pub)
{
if (public_key_exists(pub_id))
{
- base64<rsa_pub_key> tmp;
+ rsa_pub_key tmp;
get_key(pub_id, tmp);
- if (!keys_match(pub_id, tmp, pub_id, pub_encoded))
+ if (!keys_match(pub_id, tmp, pub_id, pub))
W(F("key '%s' is not equal to key '%s' in database") % pub_id % pub_id);
L(FL("skipping existing public key %s") % pub_id);
return false;
@@ -2692,15 +2683,13 @@ database::put_key(rsa_keypair_id const &
L(FL("putting public key %s") % pub_id);
id thash;
- key_hash_code(pub_id, pub_encoded, thash);
+ key_hash_code(pub_id, pub, thash);
I(!public_key_exists(thash));
- rsa_pub_key pub_key;
- decode_base64(pub_encoded, pub_key);
imp->execute(query("INSERT INTO public_keys VALUES(?, ?, ?)")
% blob(thash())
% text(pub_id())
- % blob(pub_key()));
+ % blob(pub()));
return true;
}
@@ -2744,7 +2733,7 @@ database::check_signature(rsa_keypair_id
cert_status
database::check_signature(rsa_keypair_id const & id,
string const & alleged_text,
- base64<rsa_sha1_signature> const & signature)
+ rsa_sha1_signature const & signature)
{
shared_ptr<PK_Verifier> verifier;
@@ -2781,19 +2770,15 @@ database::check_signature(rsa_keypair_id
imp->verifiers.insert(make_pair(id, make_pair(verifier, pub_key)));
}
- // examine signature
- rsa_sha1_signature sig_decoded;
- decode_base64(signature, sig_decoded);
-
// check the text+sig against the key
- L(FL("checking %d-byte (%d decoded) signature") %
- signature().size() % sig_decoded().size());
+ L(FL("checking %d-byte signature") %
+ signature().size());
if (verifier->verify_message(
reinterpret_cast<Botan::byte const*>(alleged_text.data()),
alleged_text.size(),
- reinterpret_cast<Botan::byte const*>(sig_decoded().data()),
- sig_decoded().size()))
+ reinterpret_cast<Botan::byte const*>(signature().data()),
+ signature().size()))
return cert_ok;
else
return cert_bad;
@@ -2806,10 +2791,6 @@ database_impl::cert_exists(cert const &
string const & table)
{
results res;
- cert_value value;
- decode_base64(t.value, value);
- rsa_sha1_signature sig;
- decode_base64(t.sig, sig);
query q = query("SELECT id FROM " + table + " WHERE id = ? "
"AND name = ? "
"AND value = ? "
@@ -2817,9 +2798,9 @@ database_impl::cert_exists(cert const &
"AND signature = ?")
% blob(t.ident.inner()())
% text(t.name())
- % blob(value())
+ % blob(t.value())
% text(t.key())
- % blob(sig());
+ % blob(t.sig());
fetch(res, 1, any_rows, q);
@@ -2833,10 +2814,7 @@ database_impl::put_cert(cert const & t,
{
id thash;
cert_hash_code(t, thash);
- cert_value value;
- decode_base64(t.value, value);
rsa_sha1_signature sig;
- decode_base64(t.sig, sig);
string insert = "INSERT INTO " + table + " VALUES(?, ?, ?, ?, ?, ?)";
@@ -2844,9 +2822,9 @@ database_impl::put_cert(cert const & t,
% blob(thash())
% blob(t.ident.inner()())
% text(t.name())
- % blob(value())
+ % blob(t.value())
% text(t.key())
- % blob(sig()));
+ % blob(t.sig()));
}
void
@@ -2857,15 +2835,11 @@ database_impl::results_to_certs(results
for (size_t i = 0; i < res.size(); ++i)
{
cert t;
- base64<cert_value> value;
- encode_base64(cert_value(res[i][2]), value);
- base64<rsa_sha1_signature> sig;
- encode_base64(rsa_sha1_signature(res[i][4]), sig);
t = cert(revision_id(res[i][0]),
- cert_name(res[i][1]),
- value,
- rsa_keypair_id(res[i][3]),
- sig);
+ cert_name(res[i][1]),
+ cert_value(res[i][2]),
+ rsa_keypair_id(res[i][3]),
+ rsa_sha1_signature(res[i][4]));
certs.push_back(t);
}
}
@@ -2936,7 +2910,7 @@ database_impl::get_certs(cert_name const
void
database_impl::get_certs(cert_name const & name,
- base64<cert_value> const & val,
+ cert_value const & val,
vector<cert> & certs,
string const & table)
{
@@ -2944,11 +2918,9 @@ database_impl::get_certs(cert_name const
query q("SELECT id, name, value, keypair, signature FROM " + table +
" WHERE name = ? AND value = ?");
- cert_value binvalue;
- decode_base64(val, binvalue);
fetch(res, 5, any_rows,
q % text(name())
- % blob(binvalue()));
+ % blob(val()));
results_to_certs(res, certs);
}
@@ -2956,7 +2928,7 @@ database_impl::get_certs(id const & iden
void
database_impl::get_certs(id const & ident,
cert_name const & name,
- base64<cert_value> const & value,
+ cert_value const & value,
vector<cert> & certs,
string const & table)
{
@@ -2964,12 +2936,10 @@ database_impl::get_certs(id const & iden
query q("SELECT id, name, value, keypair, signature FROM " + table +
" WHERE id = ? AND name = ? AND value = ?");
- cert_value binvalue;
- decode_base64(value, binvalue);
fetch(res, 5, any_rows,
q % blob(ident())
% text(name())
- % blob(binvalue()));
+ % blob(value()));
results_to_certs(res, certs);
}
@@ -3063,7 +3033,7 @@ database::get_revision_certs(revision_id
outdated_indicator
database::get_revision_certs(revision_id const & id,
cert_name const & name,
- base64<cert_value> const & val,
+ cert_value const & val,
vector< revision<cert> > & ts)
{
vector<cert> certs;
@@ -3075,15 +3045,13 @@ database::get_revisions_with_cert(cert_n
outdated_indicator
database::get_revisions_with_cert(cert_name const & name,
- base64<cert_value> const & val,
+ cert_value const & val,
set<revision_id> & revisions)
{
revisions.clear();
results res;
query q("SELECT id FROM revision_certs WHERE name = ? AND value = ?");
- cert_value binvalue;
- decode_base64(val, binvalue);
- imp->fetch(res, one_col, any_rows, q % text(name()) % blob(binvalue()));
+ imp->fetch(res, one_col, any_rows, q % text(name()) % blob(val()));
for (results::const_iterator i = res.begin(); i != res.end(); ++i)
revisions.insert(revision_id((*i)[0]));
return imp->cert_stamper.get_indicator();
@@ -3091,7 +3059,7 @@ database::get_revision_certs(cert_name c
outdated_indicator
database::get_revision_certs(cert_name const & name,
- base64<cert_value> const & val,
+ cert_value const & val,
vector< revision<cert> > & ts)
{
vector<cert> certs;