EC2N::Point EC2N::BERDecodePoint(BufferedTransformation &bt) const { SecByteBlock str; BERDecodeOctetString(bt, str); Point P; if (!DecodePoint(P, str, str.size)) BERDecodeError(); return P; }
EC2N::EC2N(BufferedTransformation &bt) : m_field(BERDecodeGF2NP(bt)) { BERSequenceDecoder seq(bt); m_field->BERDecodeElement(seq, m_a); m_field->BERDecodeElement(seq, m_b); // skip optional seed if (!seq.EndReached()) BERDecodeOctetString(seq, g_bitBucket); seq.MessageEnd(); }
ECP::ECP(BufferedTransformation &bt) : m_fieldPtr(new Field(bt)) { BERSequenceDecoder seq(bt); GetField().BERDecodeElement(seq, m_a); GetField().BERDecodeElement(seq, m_b); // skip optional seed if (!seq.EndReached()) BERDecodeOctetString(seq, TheBitBucket()); seq.MessageEnd(); }
NAMESPACE_END ECP::ECP(BufferedTransformation &bt) : m_fieldPtr(new Field(bt)), m_field(*m_fieldPtr) { BERSequenceDecoder seq(bt); m_field.BERDecodeElement(seq, m_a); m_field.BERDecodeElement(seq, m_b); // skip optional seed if (!seq.EndReached()) BERDecodeOctetString(seq, g_bitBucket); seq.MessageEnd(); }