Beispiel #1
0
void item::assign(entry v, span<char const> salt
	, sequence_number const seq, public_key const& pk, secret_key const& sk)
{
	char buffer[1000];
	int bsize = bencode(buffer, v);
	TORRENT_ASSERT(bsize <= 1000);
	m_sig = sign_mutable_item(span<char const>(buffer, bsize)
		, salt, seq, pk, sk);
	m_salt.assign(salt.data(), salt.size());
	m_pk = pk;
	m_seq = seq;
	m_mutable = true;
	m_value = std::move(v);
}
Beispiel #2
0
void item::assign(entry const& v, std::pair<char const*, int> salt
                  , boost::uint64_t seq, char const* pk, char const* sk)
{
    m_value = v;
    if (pk && sk)
    {
        char buffer[1000];
        int bsize = bencode(buffer, v);
        TORRENT_ASSERT(bsize <= 1000);
        sign_mutable_item(std::make_pair(buffer, bsize)
                          , salt, seq, pk, sk, m_sig.c_array());
        m_salt.assign(salt.first, salt.second);
        memcpy(m_pk.c_array(), pk, item_pk_len);
        m_seq = seq;
        m_mutable = true;
    }
    else
        m_mutable = false;
}