aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/asn1/alg_id.cpp4
-rw-r--r--src/asn1/asn1_oid.cpp8
-rw-r--r--src/asn1/ber_dec.cpp5
-rw-r--r--src/asn1/der_enc.cpp48
-rw-r--r--src/cert/cvc/asn1_eac_tm.cpp12
-rw-r--r--src/cert/cvc/cvc_ado.cpp6
-rw-r--r--src/cert/cvc/cvc_cert.cpp4
-rw-r--r--src/cert/cvc/cvc_self.cpp8
-rw-r--r--src/cert/cvc/ecdsa_sig.cpp2
-rw-r--r--src/cert/x509/x509_ext.cpp10
-rw-r--r--src/cms/cms_algo.cpp11
-rw-r--r--src/constructs/tss/tss.cpp18
-rw-r--r--src/filters/filter.cpp2
-rw-r--r--src/filters/pk_filts/pk_filts.cpp4
-rw-r--r--src/kdf/kdf2/kdf2.cpp2
-rw-r--r--src/kdf/x942_prf/prf_x942.cpp3
-rw-r--r--src/math/bigint/big_code.cpp7
-rw-r--r--src/pk_pad/emsa3/emsa3.cpp2
-rw-r--r--src/pk_pad/emsa_raw/emsa_raw.cpp2
-rw-r--r--src/pubkey/dlies/dlies.cpp4
-rw-r--r--src/pubkey/pubkey.cpp3
-rw-r--r--src/ssl/c_kex.cpp6
-rw-r--r--src/ssl/cert_req.cpp14
-rw-r--r--src/ssl/cert_ver.cpp6
-rw-r--r--src/ssl/finished.cpp6
-rw-r--r--src/ssl/handshake_hash.cpp8
-rw-r--r--src/ssl/handshake_hash.h6
-rw-r--r--src/ssl/hello.cpp42
-rw-r--r--src/ssl/s_kex.cpp12
-rw-r--r--src/ssl/tls_session_key.cpp20
-rw-r--r--src/sym_algo/symkey.cpp4
31 files changed, 142 insertions, 147 deletions
diff --git a/src/asn1/alg_id.cpp b/src/asn1/alg_id.cpp
index 94709ba16..b48db3e50 100644
--- a/src/asn1/alg_id.cpp
+++ b/src/asn1/alg_id.cpp
@@ -42,7 +42,7 @@ AlgorithmIdentifier::AlgorithmIdentifier(const OID& alg_id,
oid = alg_id;
if(option == USE_NULL_PARAM)
- parameters.append(DER_NULL, sizeof(DER_NULL));
+ parameters += std::make_pair(DER_NULL, sizeof(DER_NULL));
}
/*
@@ -55,7 +55,7 @@ AlgorithmIdentifier::AlgorithmIdentifier(const std::string& alg_id,
oid = OIDS::lookup(alg_id);
if(option == USE_NULL_PARAM)
- parameters.append(DER_NULL, sizeof(DER_NULL));
+ parameters += std::make_pair(DER_NULL, sizeof(DER_NULL));
}
/*
diff --git a/src/asn1/asn1_oid.cpp b/src/asn1/asn1_oid.cpp
index 6c420ff0d..820492e18 100644
--- a/src/asn1/asn1_oid.cpp
+++ b/src/asn1/asn1_oid.cpp
@@ -130,20 +130,20 @@ void OID::encode_into(DER_Encoder& der) const
throw Invalid_Argument("OID::encode_into: OID is invalid");
MemoryVector<byte> encoding;
- encoding.append(40 * id[0] + id[1]);
+ encoding.push_back(40 * id[0] + id[1]);
for(u32bit j = 2; j != id.size(); ++j)
{
if(id[j] == 0)
- encoding.append(0);
+ encoding.push_back(0);
else
{
u32bit blocks = high_bit(id[j]) + 6;
blocks = (blocks - (blocks % 7)) / 7;
for(u32bit k = 0; k != blocks - 1; ++k)
- encoding.append(0x80 | ((id[j] >> 7*(blocks-k-1)) & 0x7F));
- encoding.append(id[j] & 0x7F);
+ encoding.push_back(0x80 | ((id[j] >> 7*(blocks-k-1)) & 0x7F));
+ encoding.push_back(id[j] & 0x7F);
}
}
der.add_object(OBJECT_ID, UNIVERSAL, encoding);
diff --git a/src/asn1/ber_dec.cpp b/src/asn1/ber_dec.cpp
index f2873c177..860003440 100644
--- a/src/asn1/ber_dec.cpp
+++ b/src/asn1/ber_dec.cpp
@@ -106,7 +106,8 @@ u32bit find_eoc(DataSource* ber)
const u32bit got = ber->peek(&buffer[0], buffer.size(), data.size());
if(got == 0)
break;
- data.append(&buffer[0], got);
+
+ data += std::make_pair(&buffer[0], got);
}
DataSource_Memory source(data);
@@ -171,7 +172,7 @@ BER_Decoder& BER_Decoder::raw_bytes(MemoryRegion<byte>& out)
out.clear();
byte buf;
while(source->read_byte(buf))
- out.append(buf);
+ out.push_back(buf);
return (*this);
}
diff --git a/src/asn1/der_enc.cpp b/src/asn1/der_enc.cpp
index 0ce633c7a..affb40372 100644
--- a/src/asn1/der_enc.cpp
+++ b/src/asn1/der_enc.cpp
@@ -28,16 +28,16 @@ SecureVector<byte> encode_tag(ASN1_Tag type_tag, ASN1_Tag class_tag)
SecureVector<byte> encoded_tag;
if(type_tag <= 30)
- encoded_tag.append(static_cast<byte>(type_tag | class_tag));
+ encoded_tag.push_back(static_cast<byte>(type_tag | class_tag));
else
{
u32bit blocks = high_bit(type_tag) + 6;
blocks = (blocks - (blocks % 7)) / 7;
- encoded_tag.append(class_tag | 0x1F);
+ encoded_tag.push_back(class_tag | 0x1F);
for(u32bit k = 0; k != blocks - 1; ++k)
- encoded_tag.append(0x80 | ((type_tag >> 7*(blocks-k-1)) & 0x7F));
- encoded_tag.append(type_tag & 0x7F);
+ encoded_tag.push_back(0x80 | ((type_tag >> 7*(blocks-k-1)) & 0x7F));
+ encoded_tag.push_back(type_tag & 0x7F);
}
return encoded_tag;
@@ -50,13 +50,13 @@ SecureVector<byte> encode_length(u32bit length)
{
SecureVector<byte> encoded_length;
if(length <= 127)
- encoded_length.append(static_cast<byte>(length));
+ encoded_length.push_back(static_cast<byte>(length));
else
{
const u32bit top_byte = significant_bytes(length);
- encoded_length.append(static_cast<byte>(0x80 | top_byte));
+ encoded_length.push_back(static_cast<byte>(0x80 | top_byte));
for(u32bit j = 4-top_byte; j != 4; ++j)
- encoded_length.append(get_byte(j, length));
+ encoded_length.push_back(get_byte(j, length));
}
return encoded_length;
}
@@ -70,24 +70,21 @@ SecureVector<byte> DER_Encoder::DER_Sequence::get_contents()
{
const ASN1_Tag real_class_tag = ASN1_Tag(class_tag | CONSTRUCTED);
- SecureVector<byte> encoded_tag = encode_tag(type_tag, real_class_tag);
-
if(type_tag == SET)
{
std::sort(set_contents.begin(), set_contents.end());
for(u32bit j = 0; j != set_contents.size(); ++j)
- contents.append(set_contents[j]);
+ contents += set_contents[j];
set_contents.clear();
}
- SecureVector<byte> encoded_length = encode_length(contents.size());
-
- SecureVector<byte> retval;
- retval.append(encoded_tag);
- retval.append(encoded_length);
- retval.append(contents);
+ SecureVector<byte> result;
+ result += encode_tag(type_tag, real_class_tag);
+ result += encode_length(contents.size());
+ result += contents;
contents.clear();
- return retval;
+
+ return result;
}
/*
@@ -98,7 +95,7 @@ void DER_Encoder::DER_Sequence::add_bytes(const byte data[], u32bit length)
if(type_tag == SET)
set_contents.push_back(SecureVector<byte>(data, length));
else
- contents.append(data, length);
+ contents += std::make_pair(data, length);
}
/*
@@ -191,7 +188,7 @@ DER_Encoder& DER_Encoder::raw_bytes(const byte bytes[], u32bit length)
if(subsequences.size())
subsequences[subsequences.size()-1].add_bytes(bytes, length);
else
- contents.append(bytes, length);
+ contents += std::make_pair(bytes, length);
return (*this);
}
@@ -314,8 +311,8 @@ DER_Encoder& DER_Encoder::encode(const byte bytes[], u32bit length,
if(real_type == BIT_STRING)
{
SecureVector<byte> encoded;
- encoded.append(0);
- encoded.append(bytes, length);
+ encoded.push_back(0);
+ encoded += std::make_pair(bytes, length);
return add_object(type_tag, class_tag, encoded);
}
else
@@ -347,13 +344,10 @@ DER_Encoder& DER_Encoder::encode(const ASN1_Object& obj)
DER_Encoder& DER_Encoder::add_object(ASN1_Tag type_tag, ASN1_Tag class_tag,
const byte rep[], u32bit length)
{
- SecureVector<byte> encoded_tag = encode_tag(type_tag, class_tag);
- SecureVector<byte> encoded_length = encode_length(length);
-
SecureVector<byte> buffer;
- buffer.append(encoded_tag);
- buffer.append(encoded_length);
- buffer.append(rep, length);
+ buffer += encode_tag(type_tag, class_tag);
+ buffer += encode_length(length);
+ buffer += std::make_pair(rep, length);
return raw_bytes(buffer);
}
diff --git a/src/cert/cvc/asn1_eac_tm.cpp b/src/cert/cvc/asn1_eac_tm.cpp
index b048d3aa5..0eaca49d6 100644
--- a/src/cert/cvc/asn1_eac_tm.cpp
+++ b/src/cert/cvc/asn1_eac_tm.cpp
@@ -23,15 +23,15 @@ SecureVector<byte> enc_two_digit(u32bit in)
SecureVector<byte> result;
in %= 100;
if (in < 10)
- result.append(0x00);
+ result.push_back(0x00);
else
{
u32bit y_first_pos = round_down<u32bit>(in, 10) / 10;
- result.append(static_cast<byte>(y_first_pos));
+ result.push_back(static_cast<byte>(y_first_pos));
}
u32bit y_sec_pos = in % 10;
- result.append(static_cast<byte>(y_sec_pos));
+ result.push_back(static_cast<byte>(y_sec_pos));
return result;
}
@@ -300,9 +300,9 @@ u32bit EAC_Time::get_day() const
SecureVector<byte> EAC_Time::encoded_eac_time() const
{
SecureVector<byte> result;
- result.append(enc_two_digit(year));
- result.append(enc_two_digit(month));
- result.append(enc_two_digit(day));
+ result += enc_two_digit(year);
+ result += enc_two_digit(month);
+ result += enc_two_digit(day);
return result;
}
diff --git a/src/cert/cvc/cvc_ado.cpp b/src/cert/cvc/cvc_ado.cpp
index 8c38e90ae..38f51e8dc 100644
--- a/src/cert/cvc/cvc_ado.cpp
+++ b/src/cert/cvc/cvc_ado.cpp
@@ -87,12 +87,8 @@ void EAC1_1_ADO::decode_info(DataSource& source,
.end_cons()
.get_contents();
- SecureVector<byte> enc_car = DER_Encoder()
- .encode(car)
- .get_contents();
-
res_tbs_bits = enc_cert;
- res_tbs_bits.append(enc_car);
+ res_tbs_bits += DER_Encoder().encode(car).get_contents();
res_sig = decode_concatenation(concat_sig);
}
diff --git a/src/cert/cvc/cvc_cert.cpp b/src/cert/cvc/cvc_cert.cpp
index 9cc2bb7e5..536520b37 100644
--- a/src/cert/cvc/cvc_cert.cpp
+++ b/src/cert/cvc/cvc_cert.cpp
@@ -106,10 +106,10 @@ EAC1_1_CVC make_cvc_cert(PK_Signer& signer,
{
OID chat_oid(OIDS::lookup("CertificateHolderAuthorizationTemplate"));
MemoryVector<byte> enc_chat_val;
- enc_chat_val.append(holder_auth_templ);
+ enc_chat_val.push_back(holder_auth_templ);
MemoryVector<byte> enc_cpi;
- enc_cpi.append(0x00);
+ enc_cpi.push_back(0x00);
MemoryVector<byte> tbs = DER_Encoder()
.encode(enc_cpi, OCTET_STRING, ASN1_Tag(41), APPLICATION) // cpi
.encode(car)
diff --git a/src/cert/cvc/cvc_self.cpp b/src/cert/cvc/cvc_self.cpp
index fbd042676..f1d539923 100644
--- a/src/cert/cvc/cvc_self.cpp
+++ b/src/cert/cvc/cvc_self.cpp
@@ -136,7 +136,7 @@ EAC1_1_Req create_cvc_req(Private_Key const& key,
MemoryVector<byte> enc_public_key = eac_1_1_encoding(priv_key, sig_algo.oid);
MemoryVector<byte> enc_cpi;
- enc_cpi.append(0x00);
+ enc_cpi.push_back(0x00);
MemoryVector<byte> tbs = DER_Encoder()
.encode(enc_cpi, OCTET_STRING, ASN1_Tag(41), APPLICATION)
.raw_bytes(enc_public_key)
@@ -166,8 +166,10 @@ EAC1_1_ADO create_ado_req(Private_Key const& key,
std::string padding_and_hash = padding_and_hash_from_oid(req.signature_algorithm().oid);
PK_Signer signer(*priv_key, padding_and_hash);
SecureVector<byte> tbs_bits = req.BER_encode();
- tbs_bits.append(DER_Encoder().encode(car).get_contents());
- MemoryVector<byte> signed_cert = EAC1_1_ADO::make_signed(signer, tbs_bits, rng);
+ tbs_bits += DER_Encoder().encode(car).get_contents();
+
+ MemoryVector<byte> signed_cert =
+ EAC1_1_ADO::make_signed(signer, tbs_bits, rng);
DataSource_Memory source(signed_cert);
return EAC1_1_ADO(source);
diff --git a/src/cert/cvc/ecdsa_sig.cpp b/src/cert/cvc/ecdsa_sig.cpp
index 6a44f6803..dba2ece8d 100644
--- a/src/cert/cvc/ecdsa_sig.cpp
+++ b/src/cert/cvc/ecdsa_sig.cpp
@@ -38,7 +38,7 @@ MemoryVector<byte> ECDSA_Signature::get_concatenation() const
SecureVector<byte> sv_s = BigInt::encode_1363(m_s, enc_len);
SecureVector<byte> result(sv_r);
- result.append(sv_s);
+ result += sv_s;
return result;
}
diff --git a/src/cert/x509/x509_ext.cpp b/src/cert/x509/x509_ext.cpp
index 3e51d1fa2..bb4bc1775 100644
--- a/src/cert/x509/x509_ext.cpp
+++ b/src/cert/x509/x509_ext.cpp
@@ -223,12 +223,12 @@ MemoryVector<byte> Key_Usage::encode_inner() const
const u32bit unused_bits = low_bit(constraints) - 1;
SecureVector<byte> der;
- der.append(BIT_STRING);
- der.append(2 + ((unused_bits < 8) ? 1 : 0));
- der.append(unused_bits % 8);
- der.append((constraints >> 8) & 0xFF);
+ der.push_back(BIT_STRING);
+ der.push_back(2 + ((unused_bits < 8) ? 1 : 0));
+ der.push_back(unused_bits % 8);
+ der.push_back((constraints >> 8) & 0xFF);
if(constraints & 0xFF)
- der.append(constraints & 0xFF);
+ der.push_back(constraints & 0xFF);
return der;
}
diff --git a/src/cms/cms_algo.cpp b/src/cms/cms_algo.cpp
index 8c6806699..458e8e3f5 100644
--- a/src/cms/cms_algo.cpp
+++ b/src/cms/cms_algo.cpp
@@ -35,7 +35,7 @@ SecureVector<byte> do_rfc3217_wrap(RandomNumberGenerator& rng,
void write(const byte data[], u32bit length)
{
- buf.append(data, length);
+ buf += std::make_pair(data, length);
}
void end_msg()
{
@@ -43,7 +43,8 @@ SecureVector<byte> do_rfc3217_wrap(RandomNumberGenerator& rng,
send(buf[buf.size()-j-1]);
buf.clear();
}
- Flip_Bytes(const SecureVector<byte>& prefix) { buf.append(prefix); }
+
+ Flip_Bytes(const SecureVector<byte>& prefix) : buf(prefix) {}
private:
SecureVector<byte> buf;
};
@@ -98,10 +99,10 @@ SecureVector<byte> CMS_Encoder::wrap_key(RandomNumberGenerator& rng,
throw Encoding_Error("CMS: 128-bit KEKs must be used with " + cipher);
SecureVector<byte> lcekpad;
- lcekpad.append((byte)cek.length());
- lcekpad.append(cek.bits_of());
+ lcekpad.push_back((byte)cek.length());
+ lcekpad += cek.bits_of();
while(lcekpad.size() % 8)
- lcekpad.append(rng.next_byte());
+ lcekpad.push_back(rng.next_byte());
return do_rfc3217_wrap(rng, cipher, kek, lcekpad);
}
#endif
diff --git a/src/constructs/tss/tss.cpp b/src/constructs/tss/tss.cpp
index 644e8d857..e5c245873 100644
--- a/src/constructs/tss/tss.cpp
+++ b/src/constructs/tss/tss.cpp
@@ -138,20 +138,20 @@ RTSS_Share::split(byte M, byte N,
// Create RTSS header in each share
for(byte i = 0; i != N; ++i)
{
- shares[i].contents.append(identifier, 16);
- shares[i].contents.append(rtss_hash_id(hash.name()));
- shares[i].contents.append(M);
- shares[i].contents.append(get_byte(0, S_len));
- shares[i].contents.append(get_byte(1, S_len));
+ shares[i].contents += std::make_pair(identifier, 16);
+ shares[i].contents += rtss_hash_id(hash.name());
+ shares[i].contents += M;
+ shares[i].contents += get_byte(0, S_len);
+ shares[i].contents += get_byte(1, S_len);
}
// Choose sequential values for X starting from 1
for(byte i = 0; i != N; ++i)
- shares[i].contents.append(i+1);
+ shares[i].contents.push_back(i+1);
// secret = S || H(S)
SecureVector<byte> secret(S, S_len);
- secret.append(hash.process(S, S_len));
+ secret += hash.process(S, S_len);
for(size_t i = 0; i != secret.size(); ++i)
{
@@ -171,7 +171,7 @@ RTSS_Share::split(byte M, byte N,
X_i = gfp_mul(X_i, X);
}
- shares[j].contents.append(sum);
+ shares[j].contents.push_back(sum);
}
}
@@ -241,7 +241,7 @@ RTSS_Share::reconstruct(const std::vector<RTSS_Share>& shares)
r ^= gfp_mul(V[k], r2);
}
- secret.append(r);
+ secret.push_back(r);
}
if(secret.size() != secret_len + hash->OUTPUT_LENGTH)
diff --git a/src/filters/filter.cpp b/src/filters/filter.cpp
index d7e17e82a..a9a307dbc 100644
--- a/src/filters/filter.cpp
+++ b/src/filters/filter.cpp
@@ -38,7 +38,7 @@ void Filter::send(const byte input[], u32bit length)
}
if(nothing_attached)
- write_queue.append(input, length);
+ write_queue += std::make_pair(input, length);
else
write_queue.clear();
}
diff --git a/src/filters/pk_filts/pk_filts.cpp b/src/filters/pk_filts/pk_filts.cpp
index 9de0da679..7e566e4fa 100644
--- a/src/filters/pk_filts/pk_filts.cpp
+++ b/src/filters/pk_filts/pk_filts.cpp
@@ -14,7 +14,7 @@ namespace Botan {
*/
void PK_Encryptor_Filter::write(const byte input[], u32bit length)
{
- buffer.append(input, length);
+ buffer += std::make_pair(input, length);
}
/*
@@ -31,7 +31,7 @@ void PK_Encryptor_Filter::end_msg()
*/
void PK_Decryptor_Filter::write(const byte input[], u32bit length)
{
- buffer.append(input, length);
+ buffer += std::make_pair(input, length);
}
/*
diff --git a/src/kdf/kdf2/kdf2.cpp b/src/kdf/kdf2/kdf2.cpp
index 8106ba07d..14cc29a31 100644
--- a/src/kdf/kdf2/kdf2.cpp
+++ b/src/kdf/kdf2/kdf2.cpp
@@ -29,7 +29,7 @@ SecureVector<byte> KDF2::derive(u32bit out_len,
SecureVector<byte> hash_result = hash->final();
u32bit added = std::min<u32bit>(hash_result.size(), out_len);
- output.append(&hash_result[0], added);
+ output += std::make_pair(&hash_result[0], added);
out_len -= added;
++counter;
diff --git a/src/kdf/x942_prf/prf_x942.cpp b/src/kdf/x942_prf/prf_x942.cpp
index d9ee09d20..35402ad28 100644
--- a/src/kdf/x942_prf/prf_x942.cpp
+++ b/src/kdf/x942_prf/prf_x942.cpp
@@ -69,7 +69,8 @@ SecureVector<byte> X942_PRF::derive(u32bit key_len,
);
SecureVector<byte> digest = hash.final();
- key.append(digest, std::min(digest.size(), key_len - key.size()));
+ const u32bit needed = std::min(digest.size(), key_len - key.size());
+ key += std::make_pair(&digest[0], needed);
++counter;
}
diff --git a/src/math/bigint/big_code.cpp b/src/math/bigint/big_code.cpp
index 1e35edcc9..25c27bd33 100644
--- a/src/math/bigint/big_code.cpp
+++ b/src/math/bigint/big_code.cpp
@@ -112,10 +112,9 @@ BigInt BigInt::decode(const byte buf[], u32bit length, Base base)
const char buf0_with_leading_0[2] = { '0', buf[0] };
binary = hex_decode(buf0_with_leading_0, 2);
- binary.append(hex_decode(reinterpret_cast<const char*>(&buf[1]),
- length - 1,
- false));
-
+ binary += hex_decode(reinterpret_cast<const char*>(&buf[1]),
+ length - 1,
+ false);
}
else
binary = hex_decode(reinterpret_cast<const char*>(buf),
diff --git a/src/pk_pad/emsa3/emsa3.cpp b/src/pk_pad/emsa3/emsa3.cpp
index 21ef072ef..0fa9d5429 100644
--- a/src/pk_pad/emsa3/emsa3.cpp
+++ b/src/pk_pad/emsa3/emsa3.cpp
@@ -109,7 +109,7 @@ EMSA3::~EMSA3()
*/
void EMSA3_Raw::update(const byte input[], u32bit length)
{
- message.append(input, length);
+ message += std::make_pair(input, length);
}
/*
diff --git a/src/pk_pad/emsa_raw/emsa_raw.cpp b/src/pk_pad/emsa_raw/emsa_raw.cpp
index 696c6bc5c..4d32ef7a9 100644
--- a/src/pk_pad/emsa_raw/emsa_raw.cpp
+++ b/src/pk_pad/emsa_raw/emsa_raw.cpp
@@ -14,7 +14,7 @@ namespace Botan {
*/
void EMSA_Raw::update(const byte input[], u32bit length)
{
- message.append(input, length);
+ message += std::make_pair(input, length);
}
/*
diff --git a/src/pubkey/dlies/dlies.cpp b/src/pubkey/dlies/dlies.cpp
index f53aa71f9..80cf60ae3 100644
--- a/src/pubkey/dlies/dlies.cpp
+++ b/src/pubkey/dlies/dlies.cpp
@@ -47,7 +47,7 @@ SecureVector<byte> DLIES_Encryptor::enc(const byte in[], u32bit length,
out.copy(my_key.size(), in, length);
SecureVector<byte> vz = my_key;
- vz.append(ka.derive_key(0, other_key).bits_of());
+ vz += ka.derive_key(0, other_key).bits_of();
const u32bit K_LENGTH = length + mac_keylen;
OctetString K = kdf->derive_key(K_LENGTH, vz);
@@ -120,7 +120,7 @@ SecureVector<byte> DLIES_Decryptor::dec(const byte msg[], u32bit length) const
SecureVector<byte> T(msg + my_key.size() + CIPHER_LEN, mac->OUTPUT_LENGTH);
SecureVector<byte> vz(msg, my_key.size());
- vz.append(ka.derive_key(0, v).bits_of());
+ vz += ka.derive_key(0, v).bits_of();
const u32bit K_LENGTH = C.size() + mac_keylen;
OctetString K = kdf->derive_key(K_LENGTH, vz);
diff --git a/src/pubkey/pubkey.cpp b/src/pubkey/pubkey.cpp
index dc91ca908..725cdacf7 100644
--- a/src/pubkey/pubkey.cpp
+++ b/src/pubkey/pubkey.cpp
@@ -301,8 +301,7 @@ bool PK_Verifier::check_signature(const byte sig[], u32bit length)
{
BigInt sig_part;
ber_sig.decode(sig_part);
- real_sig.append(BigInt::encode_1363(sig_part,
- op->message_part_size()));
+ real_sig += BigInt::encode_1363(sig_part, op->message_part_size());
++count;
}
diff --git a/src/ssl/c_kex.cpp b/src/ssl/c_kex.cpp
index fafb67d3d..2a5dea7b3 100644
--- a/src/ssl/c_kex.cpp
+++ b/src/ssl/c_kex.cpp
@@ -82,10 +82,10 @@ SecureVector<byte> Client_Key_Exchange::serialize() const
if(include_length)
{
u16bit key_size = key_material.size();
- buf.append(get_byte(0, key_size));
- buf.append(get_byte(1, key_size));
+ buf.push_back(get_byte(0, key_size));
+ buf.push_back(get_byte(1, key_size));
}
- buf.append(key_material);
+ buf += key_material;
return buf;
}
diff --git a/src/ssl/cert_req.cpp b/src/ssl/cert_req.cpp
index 7a32af03b..9cd6bd5c1 100644
--- a/src/ssl/cert_req.cpp
+++ b/src/ssl/cert_req.cpp
@@ -37,9 +37,9 @@ SecureVector<byte> Certificate_Req::serialize() const
{
SecureVector<byte> buf;
- buf.append(types.size());
+ buf.push_back(types.size());
for(u32bit i = 0; i != types.size(); i++)
- buf.append(types[i]);
+ buf.push_back(types[i]);
DER_Encoder encoder;
for(u32bit i = 0; i != names.size(); i++)
@@ -48,9 +48,9 @@ SecureVector<byte> Certificate_Req::serialize() const
SecureVector<byte> der_names = encoder.get_contents();
u16bit names_size = der_names.size();
- buf.append(get_byte(0, names_size));
- buf.append(get_byte(1, names_size));
- buf.append(der_names);
+ buf.push_back(get_byte(0, names_size));
+ buf.push_back(get_byte(1, names_size));
+ buf += der_names;
return buf;
}
@@ -109,8 +109,8 @@ SecureVector<byte> Certificate::serialize() const
SecureVector<byte> raw_cert = certs[i].BER_encode();
u32bit cert_size = raw_cert.size();
for(u32bit j = 0; j != 3; j++)
- buf.append(get_byte(j+1, cert_size));
- buf.append(raw_cert);
+ buf.push_back(get_byte(j+1, cert_size));
+ buf += raw_cert;
}
u32bit buf_size = buf.size() - 3;
diff --git a/src/ssl/cert_ver.cpp b/src/ssl/cert_ver.cpp
index d1d39f74e..7c6725572 100644
--- a/src/ssl/cert_ver.cpp
+++ b/src/ssl/cert_ver.cpp
@@ -51,9 +51,9 @@ SecureVector<byte> Certificate_Verify::serialize() const
SecureVector<byte> buf;
u16bit sig_len = signature.size();
- buf.append(get_byte(0, sig_len));
- buf.append(get_byte(1, sig_len));
- buf.append(signature);
+ buf.push_back(get_byte(0, sig_len));
+ buf.push_back(get_byte(1, sig_len));
+ buf += signature;
return buf;
}
diff --git a/src/ssl/finished.cpp b/src/ssl/finished.cpp
index 6648a2c3e..86eee7fe3 100644
--- a/src/ssl/finished.cpp
+++ b/src/ssl/finished.cpp
@@ -86,10 +86,10 @@ SecureVector<byte> Finished::compute_verify(const MemoryRegion<byte>& secret,
SecureVector<byte> input;
if(side == CLIENT)
- input.append(TLS_CLIENT_LABEL, sizeof(TLS_CLIENT_LABEL));
+ input += std::make_pair(TLS_CLIENT_LABEL, sizeof(TLS_CLIENT_LABEL));
else
- input.append(TLS_SERVER_LABEL, sizeof(TLS_SERVER_LABEL));
- input.append(hash.final());
+ input += std::make_pair(TLS_SERVER_LABEL, sizeof(TLS_SERVER_LABEL));
+ input += hash.final();
return prf.derive_key(12, secret, input);
}
diff --git a/src/ssl/handshake_hash.cpp b/src/ssl/handshake_hash.cpp
index fb9f5f9f4..a9e1d8e13 100644
--- a/src/ssl/handshake_hash.cpp
+++ b/src/ssl/handshake_hash.cpp
@@ -24,8 +24,8 @@ SecureVector<byte> HandshakeHash::final()
sha1.update(data);
SecureVector<byte> output;
- output.append(md5.final());
- output.append(sha1.final());
+ output += md5.final();
+ output += sha1.final();
return output;
}
@@ -58,8 +58,8 @@ SecureVector<byte> HandshakeHash::final_ssl3(const MemoryRegion<byte>& secret)
sha1.update(inner_sha1);
SecureVector<byte> output;
- output.append(md5.final());
- output.append(sha1.final());
+ output += md5.final();
+ output += sha1.final();
return output;
}
diff --git a/src/ssl/handshake_hash.h b/src/ssl/handshake_hash.h
index df50e4dfe..4c145c6c6 100644
--- a/src/ssl/handshake_hash.h
+++ b/src/ssl/handshake_hash.h
@@ -21,13 +21,13 @@ class BOTAN_DLL HandshakeHash
{
public:
void update(const byte in[], u32bit length)
- { data.append(in, length); }
+ { data += std::make_pair(in, length); }
void update(const MemoryRegion<byte>& in)
- { update(&in[0], in.size()); }
+ { data += in; }
void update(byte in)
- { update(&in, 1); }
+ { data.push_back(in); }
SecureVector<byte> final();
SecureVector<byte> final_ssl3(const MemoryRegion<byte>&);
diff --git a/src/ssl/hello.cpp b/src/ssl/hello.cpp
index 9ee3f87b9..887d13f1f 100644
--- a/src/ssl/hello.cpp
+++ b/src/ssl/hello.cpp
@@ -25,7 +25,7 @@ void HandshakeMessage::send(Record_Writer& writer, HandshakeHash& hash) const
send_buf[2] = get_byte(2, buf_size);
send_buf[3] = get_byte(3, buf_size);
- send_buf.append(buf);
+ send_buf += buf;
hash.update(send_buf);
@@ -82,25 +82,26 @@ SecureVector<byte> Client_Hello::serialize() const
{
SecureVector<byte> buf;
- buf.append(static_cast<byte>(c_version >> 8));
- buf.append(static_cast<byte>(c_version ));
- buf.append(c_random);
- buf.append(static_cast<byte>(sess_id.size()));
- buf.append(sess_id);
+ buf.push_back(static_cast<byte>(c_version >> 8));
+ buf.push_back(static_cast<byte>(c_version ));
+ buf += c_random;
+
+ buf.push_back(static_cast<byte>(sess_id.size()));
+ buf += sess_id;
u16bit suites_size = 2*suites.size();
- buf.append(get_byte(0, suites_size));
- buf.append(get_byte(1, suites_size));
+ buf.push_back(get_byte(0, suites_size));
+ buf.push_back(get_byte(1, suites_size));
for(u32bit i = 0; i != suites.size(); i++)
{
- buf.append(get_byte(0, suites[i]));
- buf.append(get_byte(1, suites[i]));
+ buf.push_back(get_byte(0, suites[i]));
+ buf.push_back(get_byte(1, suites[i]));
}
- buf.append(static_cast<byte>(comp_algos.size()));
+ buf.push_back(static_cast<byte>(comp_algos.size()));
for(u32bit i = 0; i != comp_algos.size(); i++)
- buf.append(comp_algos[i]);
+ buf.push_back(comp_algos[i]);
return buf;
}
@@ -260,16 +261,17 @@ SecureVector<byte> Server_Hello::serialize() const
{
SecureVector<byte> buf;
- buf.append(static_cast<byte>(s_version >> 8));
- buf.append(static_cast<byte>(s_version ));
- buf.append(s_random);
- buf.append(static_cast<byte>(sess_id.size()));
- buf.append(sess_id);
+ buf.push_back(static_cast<byte>(s_version >> 8));
+ buf.push_back(static_cast<byte>(s_version ));
+ buf += s_random;
+
+ buf.push_back(static_cast<byte>(sess_id.size()));
+ buf += sess_id;
- buf.append(get_byte(0, suite));
- buf.append(get_byte(1, suite));
+ buf.push_back(get_byte(0, suite));
+ buf.push_back(get_byte(1, suite));
- buf.append(comp_algo);
+ buf.push_back(comp_algo);
return buf;
}
diff --git a/src/ssl/s_kex.cpp b/src/ssl/s_kex.cpp
index 220ef2e0b..6e4749491 100644
--- a/src/ssl/s_kex.cpp
+++ b/src/ssl/s_kex.cpp
@@ -75,9 +75,9 @@ SecureVector<byte> Server_Key_Exchange::serialize() const
{
SecureVector<byte> buf = serialize_params();
u16bit sig_len = signature.size();
- buf.append(get_byte(0, sig_len));
- buf.append(get_byte(1, sig_len));
- buf.append(signature);
+ buf.push_back(get_byte(0, sig_len));
+ buf.push_back(get_byte(1, sig_len));
+ buf += signature;
return buf;
}
@@ -92,9 +92,9 @@ SecureVector<byte> Server_Key_Exchange::serialize_params() const
SecureVector<byte> param = BigInt::encode(params[j]);
u16bit param_size = param.size();
- buf.append(get_byte(0, param_size));
- buf.append(get_byte(1, param_size));
- buf.append(param);
+ buf.push_back(get_byte(0, param_size));
+ buf.push_back(get_byte(1, param_size));
+ buf += param;
}
return buf;
}
diff --git a/src/ssl/tls_session_key.cpp b/src/ssl/tls_session_key.cpp
index 138d0a77c..341ce7bb0 100644
--- a/src/ssl/tls_session_key.cpp
+++ b/src/ssl/tls_session_key.cpp
@@ -79,14 +79,14 @@ SymmetricKey SessionKeys::ssl3_keygen(u32bit prf_gen,
SSL3_PRF prf;
SecureVector<byte> salt;
- salt.append(client_random);
- salt.append(server_random);
+ salt += client_random;
+ salt += server_random;
master_sec = prf.derive_key(48, pre_master, salt);
salt.clear();
- salt.append(server_random);
- salt.append(client_random);
+ salt += server_random;
+ salt += client_random;
return prf.derive_key(prf_gen, master_sec, salt);
}
@@ -109,16 +109,16 @@ SymmetricKey SessionKeys::tls1_keygen(u32bit prf_gen,
TLS_PRF prf;
SecureVector<byte> salt;
- salt.append(MASTER_SECRET_MAGIC, sizeof(MASTER_SECRET_MAGIC));
- salt.append(client_random);
- salt.append(server_random);
+ salt += std::make_pair(MASTER_SECRET_MAGIC, sizeof(MASTER_SECRET_MAGIC));
+ salt += client_random;
+ salt += server_random;
master_sec = prf.derive_key(48, pre_master, salt);
salt.clear();
- salt.append(KEY_GEN_MAGIC, sizeof(KEY_GEN_MAGIC));
- salt.append(server_random);
- salt.append(client_random);
+ salt += std::make_pair(KEY_GEN_MAGIC, sizeof(KEY_GEN_MAGIC));
+ salt += server_random;
+ salt += client_random;
return prf.derive_key(prf_gen, master_sec, salt);
}
diff --git a/src/sym_algo/symkey.cpp b/src/sym_algo/symkey.cpp
index 160149b01..63b3e75b7 100644
--- a/src/sym_algo/symkey.cpp
+++ b/src/sym_algo/symkey.cpp
@@ -117,8 +117,8 @@ bool operator!=(const OctetString& s1, const OctetString& s2)
OctetString operator+(const OctetString& k1, const OctetString& k2)
{
SecureVector<byte> out;
- out.append(k1.bits_of());
- out.append(k2.bits_of());
+ out += k1.bits_of();
+ out += k2.bits_of();
return OctetString(out);
}