Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-03-29 08:28:36

0001 // Copyright (C) 2018 Intel Corporation.
0002 // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
0003 // Qt-Security score:critical reason:data-parser
0004 
0005 #ifndef QCBORCOMMON_H
0006 #define QCBORCOMMON_H
0007 
0008 #include <QtCore/qobjectdefs.h>
0009 #include <QtCore/qmetatype.h>
0010 #include <QtCore/qshareddata.h>
0011 
0012 #if 0
0013 #pragma qt_class(QtCborCommon)
0014 #endif
0015 
0016 /* X11 headers use these values too, but as defines */
0017 #if defined(False) && defined(True)
0018 #  undef True
0019 #  undef False
0020 #endif
0021 
0022 QT_BEGIN_NAMESPACE
0023 
0024 class QDebug;
0025 
0026 class QCborContainerPrivate;
0027 QT_DECLARE_QESDP_SPECIALIZATION_DTOR(QCborContainerPrivate) // defined in qcborvalue.cpp
0028 
0029 enum class QCborSimpleType : quint8 {
0030     False = 20,
0031     True = 21,
0032     Null = 22,
0033     Undefined = 23
0034 };
0035 
0036 enum class QCborTag : quint64 {};
0037 enum class QCborKnownTags {
0038     DateTimeString          = 0,
0039     UnixTime_t              = 1,
0040     PositiveBignum          = 2,
0041     NegativeBignum          = 3,
0042     Decimal                 = 4,
0043     Bigfloat                = 5,
0044     COSE_Encrypt0           = 16,
0045     COSE_Mac0               = 17,
0046     COSE_Sign1              = 18,
0047     ExpectedBase64url       = 21,
0048     ExpectedBase64          = 22,
0049     ExpectedBase16          = 23,
0050     EncodedCbor             = 24,
0051     Url                     = 32,
0052     Base64url               = 33,
0053     Base64                  = 34,
0054     RegularExpression       = 35,
0055     MimeMessage             = 36,
0056     Uuid                    = 37,
0057     COSE_Encrypt            = 96,
0058     COSE_Mac                = 97,
0059     COSE_Sign               = 98,
0060     Signature               = 55799
0061 };
0062 
0063 inline bool operator==(QCborTag t, QCborKnownTags kt)   { return quint64(t) == quint64(kt); }
0064 inline bool operator==(QCborKnownTags kt, QCborTag t)   { return quint64(t) == quint64(kt); }
0065 inline bool operator!=(QCborTag t, QCborKnownTags kt)   { return quint64(t) != quint64(kt); }
0066 inline bool operator!=(QCborKnownTags kt, QCborTag t)   { return quint64(t) != quint64(kt); }
0067 
0068 struct Q_CORE_EXPORT QCborError
0069 {
0070     Q_GADGET
0071 public:
0072     enum Code : int {
0073         UnknownError = 1,
0074         AdvancePastEnd = 3,
0075         InputOutputError = 4,
0076         GarbageAtEnd = 256,
0077         EndOfFile,
0078         UnexpectedBreak,
0079         UnknownType,
0080         IllegalType,
0081         IllegalNumber,
0082         IllegalSimpleType,
0083 
0084         InvalidUtf8String = 516,
0085 
0086         DataTooLarge = 1024,
0087         NestingTooDeep,
0088         UnsupportedType,
0089 
0090         NoError = 0
0091     };
0092     Q_ENUM(Code)
0093 
0094     Code c;
0095     operator Code() const { return c; }
0096     QString toString() const;
0097 };
0098 
0099 #if !defined(QT_NO_DEBUG_STREAM)
0100 Q_CORE_EXPORT QDebug operator<<(QDebug, QCborSimpleType st);
0101 Q_CORE_EXPORT QDebug operator<<(QDebug, QCborKnownTags tg);
0102 Q_CORE_EXPORT QDebug operator<<(QDebug, QCborTag tg);
0103 #endif
0104 
0105 #if !defined(QT_NO_DATASTREAM)
0106 Q_CORE_EXPORT QDataStream &operator<<(QDataStream &ds, QCborSimpleType st);
0107 Q_CORE_EXPORT QDataStream &operator>>(QDataStream &ds, QCborSimpleType &st);
0108 #endif
0109 
0110 inline size_t qHash(QCborSimpleType tag, size_t seed = 0)
0111 {
0112     return qHash(quint8(tag), seed);
0113 }
0114 
0115 inline size_t qHash(QCborTag tag, size_t seed = 0)
0116 {
0117     return qHash(quint64(tag), seed);
0118 }
0119 
0120 enum class QCborNegativeInteger : quint64 {};
0121 
0122 QT_END_NAMESPACE
0123 
0124 QT_DECL_METATYPE_EXTERN(QCborTag, Q_CORE_EXPORT)
0125 
0126 #endif // QCBORSTREAM_H