/************************************************* * Algorithm Identifier Source File * * (C) 1999-2006 The Botan Project * *************************************************/ #include #include #include #include namespace Botan { /************************************************* * Create an AlgorithmIdentifier * *************************************************/ AlgorithmIdentifier::AlgorithmIdentifier(const OID& alg_id, const MemoryRegion& param) : oid(alg_id), parameters(param) { } /************************************************* * Create an AlgorithmIdentifier * *************************************************/ AlgorithmIdentifier::AlgorithmIdentifier(const std::string& alg_id, const MemoryRegion& param) : oid(OIDS::lookup(alg_id)), parameters(param) { } /************************************************* * Compare two AlgorithmIdentifiers * *************************************************/ bool operator==(const AlgorithmIdentifier& a1, const AlgorithmIdentifier& a2) { if(a1.oid != a2.oid) return false; if(a1.parameters != a2.parameters) return false; return true; } /************************************************* * Compare two AlgorithmIdentifiers * *************************************************/ bool operator!=(const AlgorithmIdentifier& a1, const AlgorithmIdentifier& a2) { return !(a1 == a2); } /************************************************* * DER encode an AlgorithmIdentifier * *************************************************/ void AlgorithmIdentifier::encode_into(DER_Encoder& codec) const { codec.start_cons(SEQUENCE) .encode(oid) .raw_bytes(parameters) .end_cons(); } /************************************************* * Decode a BER encoded AlgorithmIdentifier * *************************************************/ void AlgorithmIdentifier::decode_from(BER_Decoder& codec) { codec.start_cons(SEQUENCE) .decode(oid) .raw_bytes(parameters) .end_cons(); } }