diff options
author | Jeremy Lainé <jeremy.laine@m4x.org> | 2014-09-03 10:44:02 +0200 |
---|---|---|
committer | Jeremy Lainé <jeremy.laine@m4x.org> | 2014-09-03 17:28:02 +0200 |
commit | bdb30abcd274d4fb1958e17ba8790e415a2ffe85 (patch) | |
tree | 144fa81547f64be204436ba5f19fe7e3405fe235 /src/network/ssl/qasn1element.cpp | |
parent | c68ef6d2c010da545c839ba669da011162828f76 (diff) |
ssl: add support for ASN.1 boolean values
This adds support for reading and writing ASN.1 boolean
values. It also adds an operator to test two ASN.1 elements
for equality.
Change-Id: I4a22cbf9808533d593fc59d27b63caaf650b1f57
Reviewed-by: Richard J. Moore <rich@kde.org>
Diffstat (limited to 'src/network/ssl/qasn1element.cpp')
-rw-r--r-- | src/network/ssl/qasn1element.cpp | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/src/network/ssl/qasn1element.cpp b/src/network/ssl/qasn1element.cpp index cd8ebed501..78fffbf793 100644 --- a/src/network/ssl/qasn1element.cpp +++ b/src/network/ssl/qasn1element.cpp @@ -155,6 +155,12 @@ void QAsn1Element::write(QDataStream &stream) const stream.writeRawData(mValue.data(), mValue.size()); } +QAsn1Element QAsn1Element::fromBool(bool val) +{ + return QAsn1Element(QAsn1Element::BooleanType, + QByteArray(1, val ? 0xff : 0x00)); +} + QAsn1Element QAsn1Element::fromInteger(unsigned int val) { QAsn1Element elem(QAsn1Element::IntegerType); @@ -199,6 +205,23 @@ QAsn1Element QAsn1Element::fromObjectId(const QByteArray &id) return elem; } +bool QAsn1Element::toBool(bool *ok) const +{ + if (*this == fromBool(true)) { + if (ok) + *ok = true; + return true; + } else if (*this == fromBool(false)) { + if (ok) + *ok = true; + return false; + } else { + if (ok) + *ok = false; + return false; + } +} + QDateTime QAsn1Element::toDateTime() const { if (mValue.endsWith('Z')) { |