diff --git a/asn.h b/asn.h index 66641997..b3c71629 100644 --- a/asn.h +++ b/asn.h @@ -201,6 +201,15 @@ public: /// void BERDecodeAndCheck(BufferedTransformation &bt) const; + const std::vector& GetValues() const { + return m_values; + } + +protected: + friend bool operator==(const OID &lhs, const OID &rhs); + friend bool operator!=(const OID &lhs, const OID &rhs); + friend bool operator<(const OID &lhs, const OID &rhs); + std::vector m_values; private: @@ -213,6 +222,7 @@ class EncodedObjectFilter : public Filter { public: enum Flag {PUT_OBJECTS=1, PUT_MESSANGE_END_AFTER_EACH_OBJECT=2, PUT_MESSANGE_END_AFTER_ALL_OBJECTS=4, PUT_MESSANGE_SERIES_END_AFTER_ALL_OBJECTS=8}; + enum State {IDENTIFIER, LENGTH, BODY, TAIL, ALL_DONE} m_state; virtual ~EncodedObjectFilter() {} @@ -233,13 +243,11 @@ public: private: BufferedTransformation & CurrentTarget(); - word32 m_flags; - unsigned int m_nObjects, m_nCurrentObject, m_level; - std::vector m_positions; ByteQueue m_queue; - enum State {IDENTIFIER, LENGTH, BODY, TAIL, ALL_DONE} m_state; - byte m_id; + std::vector m_positions; lword m_lengthRemaining; + word32 m_nObjects, m_nCurrentObject, m_level, m_flags; + byte m_id; }; /// \brief BER General Decoder @@ -265,8 +273,8 @@ public: protected: BufferedTransformation &m_inQueue; - bool m_finished, m_definiteLength; lword m_length; + bool m_finished, m_definiteLength; private: void Init(byte asnTag); @@ -294,9 +302,8 @@ public: private: BufferedTransformation &m_outQueue; - bool m_finished; - byte m_asnTag; + bool m_finished; }; /// \brief BER Sequence Decoder diff --git a/eccrypto.cpp b/eccrypto.cpp index d7a0dda8..60a86b66 100644 --- a/eccrypto.cpp +++ b/eccrypto.cpp @@ -485,7 +485,7 @@ bool DL_GroupParameters_EC::GetVoidValue(const char *name, const std::type_i { if (strcmp(name, Name::GroupOID()) == 0) { - if (m_oid.m_values.empty()) + if (m_oid.GetValues().empty()) return false; this->ThrowIfTypeMismatch(name, typeid(OID), valueType); @@ -563,7 +563,7 @@ void DL_GroupParameters_EC::BERDecode(BufferedTransformation &bt) template void DL_GroupParameters_EC::DEREncode(BufferedTransformation &bt) const { - if (m_encodeAsOID && !m_oid.m_values.empty()) + if (m_encodeAsOID && !m_oid.GetValues().empty()) m_oid.DEREncode(bt); else { diff --git a/validat2.cpp b/validat2.cpp index 49af29b4..3b1c081f 100644 --- a/validat2.cpp +++ b/validat2.cpp @@ -883,7 +883,7 @@ bool ValidateECP() std::cout << "Testing SEC 2, NIST, and Brainpool recommended curves..." << std::endl; OID oid; - while (!(oid = DL_GroupParameters_EC::GetNextRecommendedParametersOID(oid)).m_values.empty()) + while (!(oid = DL_GroupParameters_EC::GetNextRecommendedParametersOID(oid)).GetValues().empty()) { DL_GroupParameters_EC params(oid); bool fail = !params.Validate(GlobalRNG(), 2);