Example #1
0
    void convert(const u::array& a, users& us)
    {
        us.reserve(us.size() + a.size());
        for(const auto& v : a)
        {
            user_info_ptr n{new user_info};
            convert(v.as_dict(), *n);

            CHECK(n);
            us.emplace_back(n);
        }

        ENSURE_EQUAL(us.size(), a.size());
    }
Example #2
0
        u::bytes private_key::sign(const u::bytes& b) const
        {
            INVARIANT(_k);
            u::mutex_scoped_lock l(BOTAN_MUTEX);

            init_rng();
            CHECK(RNG);

            b::PK_Signer s{*_k, EMSA_SCHEME};
            auto r = s.sign_message(reinterpret_cast<const unsigned char*>(b.data()), b.size(), *RNG); 

            ENSURE_EQUAL(r.size(), SIGNATURE_SIZE);
            return u::bytes {std::begin(r), std::end(r)};
        }
Example #3
0
    u::array convert(const users& us)
    {
        u::array a;
        a.reserve(us.size());

        for(const auto& u : us) 
        { 
            CHECK(u);
            a.add(convert(*u));
        }

        ENSURE_EQUAL(a.size(), us.size());
        return a;
    }
Example #4
0
        public_key& public_key::operator=(const public_key& o)
        {
            if(&o == this) return *this;
            u::mutex_scoped_lock l(BOTAN_MUTEX);

            _ks = o._ks;
            b::DataSource_Memory ds{reinterpret_cast<const b::byte*>(&_ks[0]), _ks.size()};
            _k.reset(b::X509::load_key(ds));

            ENSURE(_k);
            ENSURE_NOT_EQUAL(_k, o._k);
            ENSURE_FALSE(_ks.empty());
            ENSURE_EQUAL(_ks, o._ks);
            return *this;
        }
Example #5
0
                message to_message() const
                {
                    message m;
                    m.meta.type = type;
                    if(!from_id.empty()) m.meta.extra["from_id"] = from_id;
                    if(!from_ip.empty()) m.meta.extra["from_ip"] = from_ip;
                    if(from_port != 0) m.meta.extra["from_port"] = from_port;

                    //serialize structure
                    CHECK(this);
                    const C& self = reinterpret_cast<const C&>(*this);
                    util::serialize(m.data, self);

                    ENSURE_EQUAL(m.meta.type, type);
                    return m;
                }