| 1 | #␊ |
| 2 | #␊ |
| 3 | # patch "src/database.cc"␊ |
| 4 | # from [4c259f963c440fc95564dfec99b2f832f0bad643]␊ |
| 5 | # to [87efeeff2d3263ba98af684a4022f1897434ed2d]␊ |
| 6 | # ␊ |
| 7 | # patch "src/gzip.cc"␊ |
| 8 | # from [e7c19bee910e3d421fd073933810ec52092b1d9b]␊ |
| 9 | # to [bab290412cff6031b2d3bf9d1439a08499d39640]␊ |
| 10 | # ␊ |
| 11 | # patch "src/gzip.hh"␊ |
| 12 | # from [649dfc0b250954f39c0f73870f8bec3f32f7fa43]␊ |
| 13 | # to [f462dfc1df71ae1e9a8203606fd29d9e0eda9b2a]␊ |
| 14 | # ␊ |
| 15 | # patch "src/key_packet.cc"␊ |
| 16 | # from [d1306df89dd684badac02c03744cd446381c07d3]␊ |
| 17 | # to [c97262d161b23c9640972188979669b3e95afe7b]␊ |
| 18 | # ␊ |
| 19 | # patch "src/key_store.cc"␊ |
| 20 | # from [64c4c4bed1fadc26b51207b9f61343f9dd7d3c6e]␊ |
| 21 | # to [1b1f1a989c21ee0dc69c540783ffb1fe4bceabf5]␊ |
| 22 | # ␊ |
| 23 | # patch "src/monotone.cc"␊ |
| 24 | # from [a25ecdd170a601db798b63a60add7681609a34c4]␊ |
| 25 | # to [2c5f57762bc687a90f75e732f39d2181fc50bd6d]␊ |
| 26 | # ␊ |
| 27 | # patch "src/packet.cc"␊ |
| 28 | # from [f61360ed2524fdf53411bd24d022a2a3c9e6e9c7]␊ |
| 29 | # to [6f6739c4756933843a2d865dc6790de9013626b7]␊ |
| 30 | # ␊ |
| 31 | # patch "src/packet.hh"␊ |
| 32 | # from [0a224e6e92f244e2c3e9a5cdb935eb8613d7e85b]␊ |
| 33 | # to [6c7d90e0bd9abe1e2e97da8ed40808fe438ea34b]␊ |
| 34 | # ␊ |
| 35 | # patch "src/sha1.cc"␊ |
| 36 | # from [5e1aa972d7c7d66e06320b039989652b830dcd75]␊ |
| 37 | # to [42e48b22fd88b25e0d38d4f91e1f13f8a83c7120]␊ |
| 38 | # ␊ |
| 39 | # patch "src/ssh_agent.cc"␊ |
| 40 | # from [6d188e7012a0b82f782563b09bbd7adf3f70cf75]␊ |
| 41 | # to [4a0dcab873559e934e41c5f220b5434d35600d9b]␊ |
| 42 | # ␊ |
| 43 | # patch "src/transforms.cc"␊ |
| 44 | # from [cdfb6854ef4992faba21074145f3c8269b845b11]␊ |
| 45 | # to [789e01bbff42020d04d8dba8f6b97588fbe4ca3d]␊ |
| 46 | #␊ |
| 47 | ============================================================␊ |
| 48 | --- src/database.cc␉4c259f963c440fc95564dfec99b2f832f0bad643␊ |
| 49 | +++ src/database.cc␉87efeeff2d3263ba98af684a4022f1897434ed2d␊ |
| 50 | @@ -3425,9 +3425,8 @@ database::encrypt_rsa(key_id const & pub␊ |
| 51 | rsa_pub_key pub;␊ |
| 52 | get_key(pub_id, pub);␊ |
| 53 | ␊ |
| 54 | - SecureVector<Botan::byte> pub_block;␊ |
| 55 | - pub_block.set(reinterpret_cast<Botan::byte const *>(pub().data()),␊ |
| 56 | - pub().size());␊ |
| 57 | + SecureVector<Botan::byte> pub_block␊ |
| 58 | + (reinterpret_cast<Botan::byte const *>(pub().data()), pub().size());␊ |
| 59 | ␊ |
| 60 | shared_ptr<X509_PublicKey> x509_key(Botan::X509::load_key(pub_block));␊ |
| 61 | shared_ptr<RSA_PublicKey> pub_key␊ |
| 62 | @@ -3471,14 +3470,13 @@ database::check_signature(key_id const &␊ |
| 63 | else␊ |
| 64 | {␊ |
| 65 | rsa_pub_key pub;␊ |
| 66 | - SecureVector<Botan::byte> pub_block;␊ |
| 67 | ␊ |
| 68 | if (!public_key_exists(id))␊ |
| 69 | return cert_unknown;␊ |
| 70 | ␊ |
| 71 | get_key(id, pub);␊ |
| 72 | - pub_block.set(reinterpret_cast<Botan::byte const *>(pub().data()),␊ |
| 73 | - pub().size());␊ |
| 74 | + SecureVector<Botan::byte> pub_block␊ |
| 75 | + (reinterpret_cast<Botan::byte const *>(pub().data()), pub().size());␊ |
| 76 | ␊ |
| 77 | L(FL("building verifier for %d-byte pub key") % pub_block.size());␊ |
| 78 | shared_ptr<X509_PublicKey> x509_key(Botan::X509::load_key(pub_block));␊ |
| 79 | ============================================================␊ |
| 80 | --- src/gzip.cc␉e7c19bee910e3d421fd073933810ec52092b1d9b␊ |
| 81 | +++ src/gzip.cc␉bab290412cff6031b2d3bf9d1439a08499d39640␊ |
| 82 | @@ -137,7 +137,7 @@ void Gzip_Compression::start_msg()␊ |
| 83 | /*************************************************␊ |
| 84 | * Compress Input with Gzip *␊ |
| 85 | *************************************************/␊ |
| 86 | -void Gzip_Compression::write(const byte input[], u32bit length)␊ |
| 87 | +void Gzip_Compression::write(const byte input[], filter_length_t length)␊ |
| 88 | {␊ |
| 89 | ␊ |
| 90 | count += length;␊ |
| 91 | @@ -267,7 +267,7 @@ void Gzip_Decompression::start_msg()␊ |
| 92 | /*************************************************␊ |
| 93 | * Decompress Input with Gzip *␊ |
| 94 | *************************************************/␊ |
| 95 | -void Gzip_Decompression::write(const byte input[], u32bit length)␊ |
| 96 | +void Gzip_Decompression::write(const byte input[], filter_length_t length)␊ |
| 97 | {␊ |
| 98 | if(length) no_writes = false;␊ |
| 99 | ␊ |
| 100 | @@ -284,8 +284,8 @@ void Gzip_Decompression::write(const byt␊ |
| 101 | // Check the gzip header␊ |
| 102 | if (pos < sizeof(GZIP::GZIP_HEADER))␊ |
| 103 | {␊ |
| 104 | - u32bit len = std::min((u32bit)sizeof(GZIP::GZIP_HEADER)-pos, length);␊ |
| 105 | - u32bit cmplen = len;␊ |
| 106 | + filter_length_t len = std::min((filter_length_t)sizeof(GZIP::GZIP_HEADER)-pos, length);␊ |
| 107 | + filter_length_t cmplen = len;␊ |
| 108 | // The last byte is the OS flag - we don't care about that␊ |
| 109 | if (pos + len - 1 >= GZIP::HEADER_POS_OS)␊ |
| 110 | cmplen--;␊ |
| 111 | @@ -346,8 +346,14 @@ u32bit Gzip_Decompression::eat_footer(co␊ |
| 112 | if (footer.size() >= GZIP::FOOTER_LENGTH)␊ |
| 113 | throw Decoding_Error("Gzip_Decompression: Data integrity error in footer");␊ |
| 114 | ␊ |
| 115 | +#if BOTAN_VERSION_CODE >= BOTAN_VERSION_CODE_FOR(1,9,11)␊ |
| 116 | + size_t eat_len = std::min(GZIP::FOOTER_LENGTH-footer.size(),␊ |
| 117 | + static_cast<size_t>(length));␊ |
| 118 | + footer += std::make_pair(input, eat_len);␊ |
| 119 | +#else␊ |
| 120 | u32bit eat_len = std::min(GZIP::FOOTER_LENGTH-footer.size(), length);␊ |
| 121 | footer.append(input, eat_len);␊ |
| 122 | +#endif␊ |
| 123 | ␊ |
| 124 | if (footer.size() == GZIP::FOOTER_LENGTH)␊ |
| 125 | {␊ |
| 126 | @@ -377,7 +383,12 @@ void Gzip_Decompression::check_footer()␊ |
| 127 | for (int i = 0; i < 4; i++)␊ |
| 128 | buf[3-i] = tmpbuf[i];␊ |
| 129 | ␊ |
| 130 | +#if BOTAN_VERSION_CODE >= BOTAN_VERSION_CODE_FOR(1,9,11)␊ |
| 131 | + tmpbuf.resize(4);␊ |
| 132 | + tmpbuf.copy(footer.begin(), 4);␊ |
| 133 | +#else␊ |
| 134 | tmpbuf.set(footer.begin(), 4);␊ |
| 135 | +#endif␊ |
| 136 | if (buf != tmpbuf)␊ |
| 137 | throw Decoding_Error("Gzip_Decompression: Data integrity error - CRC32 error");␊ |
| 138 | ␊ |
| 139 | @@ -412,7 +423,11 @@ void Gzip_Decompression::clear()␊ |
| 140 | no_writes = true;␊ |
| 141 | inflateReset(&(zlib->stream));␊ |
| 142 | ␊ |
| 143 | +#if BOTAN_VERSION_CODE >= BOTAN_VERSION_CODE_FOR(1,9,11)␊ |
| 144 | + footer.clear();␊ |
| 145 | +#else␊ |
| 146 | footer.destroy();␊ |
| 147 | +#endif␊ |
| 148 | pos = 0;␊ |
| 149 | datacount = 0;␊ |
| 150 | }␊ |
| 151 | ============================================================␊ |
| 152 | --- src/gzip.hh␉649dfc0b250954f39c0f73870f8bec3f32f7fa43␊ |
| 153 | +++ src/gzip.hh␉f462dfc1df71ae1e9a8203606fd29d9e0eda9b2a␊ |
| 154 | @@ -7,6 +7,7 @@␊ |
| 155 | #ifndef BOTAN_EXT_GZIP_H__␊ |
| 156 | #define BOTAN_EXT_GZIP_H__␊ |
| 157 | ␊ |
| 158 | +#include <botan/version.h>␊ |
| 159 | #include <botan/filter.h>␊ |
| 160 | #include <botan/pipe.h>␊ |
| 161 | ␊ |
| 162 | @@ -30,13 +31,19 @@ namespace GZIP {␊ |
| 163 | ␊ |
| 164 | }␊ |
| 165 | ␊ |
| 166 | +#if BOTAN_VERSION_CODE >= BOTAN_VERSION_CODE_FOR(1,9,11)␊ |
| 167 | + typedef size_t filter_length_t;␊ |
| 168 | +#else␊ |
| 169 | + typedef u32bit filter_length_t;␊ |
| 170 | +#endif␊ |
| 171 | +␊ |
| 172 | /*************************************************␊ |
| 173 | * Gzip Compression Filter *␊ |
| 174 | *************************************************/␊ |
| 175 | class Gzip_Compression : public Filter␊ |
| 176 | {␊ |
| 177 | public:␊ |
| 178 | - void write(const byte input[], u32bit length);␊ |
| 179 | + void write(const byte input[], filter_length_t length);␊ |
| 180 | void start_msg();␊ |
| 181 | void end_msg();␊ |
| 182 | std::string name() const { return "Gzip_Compression"; }␊ |
| 183 | @@ -60,7 +67,7 @@ class Gzip_Decompression : public Filter␊ |
| 184 | class Gzip_Decompression : public Filter␊ |
| 185 | {␊ |
| 186 | public:␊ |
| 187 | - void write(const byte input[], u32bit length);␊ |
| 188 | + void write(const byte input[], filter_length_t length);␊ |
| 189 | void start_msg();␊ |
| 190 | void end_msg();␊ |
| 191 | std::string name() const { return "Gzip_Decompression"; }␊ |
| 192 | ============================================================␊ |
| 193 | --- src/key_packet.cc␉d1306df89dd684badac02c03744cd446381c07d3␊ |
| 194 | +++ src/key_packet.cc␉c97262d161b23c9640972188979669b3e95afe7b␊ |
| 195 | @@ -106,8 +106,8 @@ namespace␊ |
| 196 | void validate_public_key_data(string const & name, string const & keydata) const␊ |
| 197 | {␊ |
| 198 | string decoded = decode_base64_as<string>(keydata, origin::user);␊ |
| 199 | - Botan::SecureVector<Botan::byte> key_block;␊ |
| 200 | - key_block.set(reinterpret_cast<Botan::byte const *>(decoded.c_str()), decoded.size());␊ |
| 201 | + Botan::SecureVector<Botan::byte> key_block␊ |
| 202 | + (reinterpret_cast<Botan::byte const *>(decoded.c_str()), decoded.size());␊ |
| 203 | try␊ |
| 204 | {␊ |
| 205 | Botan::X509::load_key(key_block);␊ |
| 206 | ============================================================␊ |
| 207 | --- src/key_store.cc␉64c4c4bed1fadc26b51207b9f61343f9dd7d3c6e␊ |
| 208 | +++ src/key_store.cc␉1b1f1a989c21ee0dc69c540783ffb1fe4bceabf5␊ |
| 209 | @@ -572,13 +572,19 @@ key_store_state::decrypt_private_key(key␊ |
| 210 | try // with empty passphrase␊ |
| 211 | {␊ |
| 212 | Botan::DataSource_Memory ds(kp.priv());␊ |
| 213 | -#if BOTAN_VERSION_CODE >= BOTAN_VERSION_CODE_FOR(1,7,7)␊ |
| 214 | +#if BOTAN_VERSION_CODE >= BOTAN_VERSION_CODE_FOR(1,9,11)␊ |
| 215 | + pkcs8_key.reset(Botan::PKCS8::load_key(ds, lazy_rng::get(), Dummy_UI()));␊ |
| 216 | +#elif BOTAN_VERSION_CODE >= BOTAN_VERSION_CODE_FOR(1,7,7)␊ |
| 217 | pkcs8_key.reset(Botan::PKCS8::load_key(ds, lazy_rng::get(), ""));␊ |
| 218 | #else␊ |
| 219 | pkcs8_key.reset(Botan::PKCS8::load_key(ds, ""));␊ |
| 220 | #endif␊ |
| 221 | }␊ |
| 222 | +#if BOTAN_VERSION_CODE >= BOTAN_VERSION_CODE_FOR(1,9,11)␊ |
| 223 | + catch (Passphrase_Required & e)␊ |
| 224 | +#else␊ |
| 225 | catch (Botan::Exception & e)␊ |
| 226 | +#endif␊ |
| 227 | {␊ |
| 228 | L(FL("failed to load key with no passphrase: %s") % e.what());␊ |
| 229 | ␊ |
| 230 | @@ -856,9 +862,9 @@ key_store::make_signature(database & db,␊ |
| 231 | {␊ |
| 232 | if (agent.connected()) {␊ |
| 233 | //grab the monotone public key as an RSA_PublicKey␊ |
| 234 | - SecureVector<Botan::byte> pub_block;␊ |
| 235 | - pub_block.set(reinterpret_cast<Botan::byte const *>(key.pub().data()),␊ |
| 236 | - key.pub().size());␊ |
| 237 | + SecureVector<Botan::byte> pub_block␊ |
| 238 | + (reinterpret_cast<Botan::byte const *>(key.pub().data()),␊ |
| 239 | + key.pub().size());␊ |
| 240 | L(FL("make_signature: building %d-byte pub key") % pub_block.size());␊ |
| 241 | shared_ptr<X509_PublicKey> x509_key =␊ |
| 242 | shared_ptr<X509_PublicKey>(Botan::X509::load_key(pub_block));␊ |
| 243 | @@ -1031,8 +1037,14 @@ key_store_state::migrate_old_key_pair␊ |
| 244 | for (;;)␊ |
| 245 | try␊ |
| 246 | {␊ |
| 247 | +#if BOTAN_VERSION_CODE >= BOTAN_VERSION_CODE_FOR(1,9,11)␊ |
| 248 | + arc4_key.resize(phrase().size());␊ |
| 249 | + arc4_key.copy(reinterpret_cast<Botan::byte const *>(phrase().data()),␊ |
| 250 | + phrase().size());␊ |
| 251 | +#else␊ |
| 252 | arc4_key.set(reinterpret_cast<Botan::byte const *>(phrase().data()),␊ |
| 253 | phrase().size());␊ |
| 254 | +#endif␊ |
| 255 | ␊ |
| 256 | Pipe arc4_decryptor(get_cipher("ARC4", arc4_key, Botan::DECRYPTION));␊ |
| 257 | ␊ |
| 258 | ============================================================␊ |
| 259 | --- src/monotone.cc␉a25ecdd170a601db798b63a60add7681609a34c4␊ |
| 260 | +++ src/monotone.cc␉2c5f57762bc687a90f75e732f39d2181fc50bd6d␊ |
| 261 | @@ -170,11 +170,16 @@ cpp_main(int argc, char ** argv)␊ |
| 262 | // versions, including all of the stable branch 1.8.x.␊ |
| 263 | E(linked_botan_version < BOTAN_VERSION_CODE_FOR(1,9,0), origin::system,␊ |
| 264 | F("this monotone binary does not work with Botan 1.9.x"));␊ |
| 265 | -#else␊ |
| 266 | +#elif BOTAN_VERSION_CODE < BOTAN_VERSION_CODE_FOR(1,9,11)␊ |
| 267 | E(linked_botan_version > BOTAN_VERSION_CODE_FOR(1,7,22), origin::system,␊ |
| 268 | F("this monotone binary requires Botan 1.7.22 or newer"));␊ |
| 269 | E(linked_botan_version < BOTAN_VERSION_CODE_FOR(1,9,0), origin::system,␊ |
| 270 | F("this monotone binary does not work with Botan 1.9.x"));␊ |
| 271 | +#else␊ |
| 272 | + E(linked_botan_version > BOTAN_VERSION_CODE_FOR(1,9,11), origin::system,␊ |
| 273 | + F("this monotone binary requires Botan 1.9.11 or newer"));␊ |
| 274 | + E(linked_botan_version < BOTAN_VERSION_CODE_FOR(1,11,0), origin::system,␊ |
| 275 | + F("this monotone binary does not work with Botan 1.11.x"));␊ |
| 276 | #endif␊ |
| 277 | ␊ |
| 278 | app_state app;␊ |
| 279 | ============================================================␊ |
| 280 | --- src/packet.cc␉f61360ed2524fdf53411bd24d022a2a3c9e6e9c7␊ |
| 281 | +++ src/packet.cc␉6f6739c4756933843a2d865dc6790de9013626b7␊ |
| 282 | @@ -156,8 +156,8 @@ namespace␊ |
| 283 | void validate_public_key_data(string const & name, string const & keydata) const␊ |
| 284 | {␊ |
| 285 | string decoded = decode_base64_as<string>(keydata, origin::user);␊ |
| 286 | - Botan::SecureVector<Botan::byte> key_block;␊ |
| 287 | - key_block.set(reinterpret_cast<Botan::byte const *>(decoded.c_str()), decoded.size());␊ |
| 288 | + Botan::SecureVector<Botan::byte> key_block␊ |
| 289 | + (reinterpret_cast<Botan::byte const *>(decoded.c_str()), decoded.size());␊ |
| 290 | try␊ |
| 291 | {␊ |
| 292 | Botan::X509::load_key(key_block);␊ |
| 293 | @@ -175,7 +175,9 @@ namespace␊ |
| 294 | Botan::DataSource_Memory ds(decoded);␊ |
| 295 | try␊ |
| 296 | {␊ |
| 297 | -#if BOTAN_VERSION_CODE >= BOTAN_VERSION_CODE_FOR(1,7,7)␊ |
| 298 | +#if BOTAN_VERSION_CODE >= BOTAN_VERSION_CODE_FOR(1,9,11)␊ |
| 299 | + Botan::PKCS8::load_key(ds, lazy_rng::get(), Dummy_UI());␊ |
| 300 | +#elif BOTAN_VERSION_CODE >= BOTAN_VERSION_CODE_FOR(1,7,7)␊ |
| 301 | Botan::PKCS8::load_key(ds, lazy_rng::get(), string());␊ |
| 302 | #else␊ |
| 303 | Botan::PKCS8::load_key(ds, string());␊ |
| 304 | @@ -189,7 +191,11 @@ namespace␊ |
| 305 | }␊ |
| 306 | // since we do not want to prompt for a password to decode it finally,␊ |
| 307 | // we ignore all other exceptions␊ |
| 308 | +#if BOTAN_VERSION_CODE >= BOTAN_VERSION_CODE_FOR(1,9,11)␊ |
| 309 | + catch (Passphrase_Required) {}␊ |
| 310 | +#else␊ |
| 311 | catch (Botan::Invalid_Argument) {}␊ |
| 312 | +#endif␊ |
| 313 | }␊ |
| 314 | void validate_certname(string const & cn) const␊ |
| 315 | {␊ |
| 316 | @@ -460,8 +466,14 @@ read_packets(istream & in, packet_consum␊ |
| 317 | return count;␊ |
| 318 | }␊ |
| 319 | ␊ |
| 320 | +#if BOTAN_VERSION_CODE >= BOTAN_VERSION_CODE_FOR(1,9,11)␊ |
| 321 | +std::string Dummy_UI::get_passphrase(const std::string&,␊ |
| 322 | + const std::string&,␊ |
| 323 | + Botan::User_Interface::UI_Result&) const {␊ |
| 324 | + throw Passphrase_Required();␊ |
| 325 | +}␊ |
| 326 | +#endif␊ |
| 327 | ␊ |
| 328 | -␊ |
| 329 | // Local Variables:␊ |
| 330 | // mode: C++␊ |
| 331 | // fill-column: 76␊ |
| 332 | ============================================================␊ |
| 333 | --- src/packet.hh␉0a224e6e92f244e2c3e9a5cdb935eb8613d7e85b␊ |
| 334 | +++ src/packet.hh␉6c7d90e0bd9abe1e2e97da8ed40808fe438ea34b␊ |
| 335 | @@ -84,8 +84,26 @@ size_t read_packets(std::istream & in, p␊ |
| 336 | ␊ |
| 337 | size_t read_packets(std::istream & in, packet_consumer & cons);␊ |
| 338 | ␊ |
| 339 | +#if BOTAN_VERSION_CODE >= BOTAN_VERSION_CODE_FOR(1,9,11)␊ |
| 340 | +// work around botan commit 2d09d7d0cd4bd0e7155d001dd65a4f29103b158c␊ |
| 341 | +#include <botan/ui.h>␊ |
| 342 | +class Dummy_UI : public Botan::User_Interface␊ |
| 343 | +{␊ |
| 344 | +public:␊ |
| 345 | + virtual std::string get_passphrase(const std::string&,␊ |
| 346 | + const std::string&,␊ |
| 347 | + Botan::User_Interface::UI_Result&) const;␊ |
| 348 | +};␊ |
| 349 | +class Passphrase_Required : public Botan::Exception {␊ |
| 350 | +public:␊ |
| 351 | + Passphrase_Required(const std::string& m = "Passphrase required") :␊ |
| 352 | + Botan::Exception(m)␊ |
| 353 | + {}␊ |
| 354 | +};␊ |
| 355 | #endif␊ |
| 356 | ␊ |
| 357 | +#endif␊ |
| 358 | +␊ |
| 359 | // Local Variables:␊ |
| 360 | // mode: C++␊ |
| 361 | // fill-column: 76␊ |
| 362 | ============================================================␊ |
| 363 | --- src/sha1.cc␉5e1aa972d7c7d66e06320b039989652b830dcd75␊ |
| 364 | +++ src/sha1.cc␉42e48b22fd88b25e0d38d4f91e1f13f8a83c7120␊ |
| 365 | @@ -50,9 +50,12 @@ CMD_HIDDEN(benchmark_sha1, "benchmark_sh␊ |
| 366 | Botan::Default_Benchmark_Timer timer;␊ |
| 367 | std::map<std::string, double> results =␊ |
| 368 | Botan::algorithm_benchmark("SHA-1", milliseconds, timer, rng, af);␊ |
| 369 | +#elif BOTAN_VERSION_CODE < BOTAN_VERSION_CODE_FOR(1,9,11)␊ |
| 370 | + std::map<std::string, double> results =␊ |
| 371 | + Botan::algorithm_benchmark("SHA-1", milliseconds, rng, af);␊ |
| 372 | #else␊ |
| 373 | std::map<std::string, double> results =␊ |
| 374 | - Botan::algorithm_benchmark("SHA-1", milliseconds, rng, af);␊ |
| 375 | + Botan::algorithm_benchmark("SHA-1", af, rng, milliseconds, 16);␊ |
| 376 | #endif␊ |
| 377 | ␊ |
| 378 | for(std::map<std::string, double>::const_iterator i = results.begin();␊ |
| 379 | ============================================================␊ |
| 380 | --- src/ssh_agent.cc␉6d188e7012a0b82f782563b09bbd7adf3f70cf75␊ |
| 381 | +++ src/ssh_agent.cc␉4a0dcab873559e934e41c5f220b5434d35600d9b␊ |
| 382 | @@ -385,9 +385,9 @@ ssh_agent::has_key(const keypair & key)␊ |
| 383 | ssh_agent::has_key(const keypair & key)␊ |
| 384 | {␊ |
| 385 | //grab the monotone public key as an RSA_PublicKey␊ |
| 386 | - SecureVector<Botan::byte> pub_block;␊ |
| 387 | - pub_block.set(reinterpret_cast<Botan::byte const *>((key.pub)().data()),␊ |
| 388 | - (key.pub)().size());␊ |
| 389 | + SecureVector<Botan::byte> pub_block␊ |
| 390 | + (reinterpret_cast<Botan::byte const *>((key.pub)().data()),␊ |
| 391 | + (key.pub)().size());␊ |
| 392 | L(FL("has_key: building %d-byte pub key") % pub_block.size());␊ |
| 393 | shared_ptr<X509_PublicKey> x509_key =␊ |
| 394 | shared_ptr<X509_PublicKey>(Botan::X509::load_key(pub_block));␊ |
| 395 | ============================================================␊ |
| 396 | --- src/transforms.cc␉cdfb6854ef4992faba21074145f3c8269b845b11␊ |
| 397 | +++ src/transforms.cc␉789e01bbff42020d04d8dba8f6b97588fbe4ca3d␊ |
| 398 | @@ -53,10 +53,10 @@ using Botan::Hash_Filter;␊ |
| 399 | // paradigm "must" be used. this program is intended for source code␊ |
| 400 | // control and I make no bones about it.␊ |
| 401 | ␊ |
| 402 | -NORETURN(static inline void error_in_transform(Botan::Exception & e));␊ |
| 403 | +NORETURN(static inline void error_in_transform(std::exception & e));␊ |
| 404 | ␊ |
| 405 | static inline void␊ |
| 406 | -error_in_transform(Botan::Exception & e, origin::type caused_by)␊ |
| 407 | +error_in_transform(std::exception & e, origin::type caused_by)␊ |
| 408 | {␊ |
| 409 | // these classes can all indicate data corruption␊ |
| 410 | if (typeid(e) == typeid(Botan::Encoding_Error)␊ |
| 411 | @@ -107,7 +107,7 @@ error_in_transform(Botan::Exception & e,␊ |
| 412 | pipe->process_msg(in); \␊ |
| 413 | out = pipe->read_all_as_string(Pipe::LAST_MESSAGE); \␊ |
| 414 | } \␊ |
| 415 | - catch (Botan::Exception & e) \␊ |
| 416 | + catch (std::exception & e) \␊ |
| 417 | { \␊ |
| 418 | pipe.reset(new Pipe(new T(carg))); \␊ |
| 419 | error_in_transform(e, made_from); \␊ |
| 420 | @@ -173,7 +173,7 @@ template<> string xform<Botan::Hex_Decod␊ |
| 421 | {␊ |
| 422 | throw Botan::Decoding_Error(string("invalid hex character '") + (char)c + "'");␊ |
| 423 | }␊ |
| 424 | - catch(Botan::Exception & e)␊ |
| 425 | + catch(std::exception & e)␊ |
| 426 | {␊ |
| 427 | error_in_transform(e, made_from);␊ |
| 428 | }␊ |
| 429 | @@ -219,7 +219,7 @@ void pack(T const & in, base64< gzip<T> ␊ |
| 430 | tmp = pipe->read_all_as_string(Pipe::LAST_MESSAGE);␊ |
| 431 | out = base64< gzip<T> >(tmp, in.made_from);␊ |
| 432 | }␊ |
| 433 | - catch (Botan::Exception & e)␊ |
| 434 | + catch (std::exception & e)␊ |
| 435 | {␊ |
| 436 | pipe.reset(new Pipe(new Gzip_Compression,␊ |
| 437 | new Base64_Encoder));␊ |
| 438 | @@ -237,7 +237,7 @@ void unpack(base64< gzip<T> > const & in␊ |
| 439 | pipe->process_msg(in());␊ |
| 440 | out = T(pipe->read_all_as_string(Pipe::LAST_MESSAGE), in.made_from);␊ |
| 441 | }␊ |
| 442 | - catch (Botan::Exception & e)␊ |
| 443 | + catch (std::exception & e)␊ |
| 444 | {␊ |
| 445 | pipe.reset(new Pipe(new Base64_Decoder,␊ |
| 446 | new Gzip_Decompression));␊ |
| 447 | @@ -264,7 +264,7 @@ calculate_ident(data const & dat,␊ |
| 448 | p->process_msg(dat());␊ |
| 449 | ident = id(p->read_all_as_string(Pipe::LAST_MESSAGE), dat.made_from);␊ |
| 450 | }␊ |
| 451 | - catch (Botan::Exception & e)␊ |
| 452 | + catch (std::exception & e)␊ |
| 453 | {␊ |
| 454 | p.reset(new Pipe(new Hash_Filter("SHA-160")));␊ |
| 455 | error_in_transform(e, dat.made_from);␊ |