Classes | Functions | Variables
bytestring_test.cc File Reference
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <vector>
#include <gtest/gtest.h>
#include <openssl/bytestring.h>
#include <openssl/crypto.h>
#include <openssl/span.h>
#include "internal.h"
#include "../internal.h"
#include "../test/test_util.h"
Include dependency graph for bytestring_test.cc:

Go to the source code of this file.

Classes

struct  ASN1Int64Test
 
struct  ASN1InvalidInt64Test
 
struct  ASN1InvalidUint64Test
 
struct  ASN1Uint64Test
 
struct  BERTest
 
struct  ImplicitStringTest
 

Functions

static void ExpectBerConvert (const char *name, bssl::Span< const uint8_t > der_expected, bssl::Span< const uint8_t > ber)
 
template<class T >
static std::vector< uint8_tLiteralToBytes (const T *str)
 
static std::vector< uint32_tLiteralToCodePoints (const char32_t *str)
 
 TEST (CBBTest, AddOIDFromText)
 
 TEST (CBBTest, ASN1)
 
 TEST (CBBTest, Basic)
 
 TEST (CBBTest, DiscardChild)
 
 TEST (CBBTest, FinishChild)
 
 TEST (CBBTest, Fixed)
 
 TEST (CBBTest, FlushASN1SetOf)
 
 TEST (CBBTest, InitUninitialized)
 
 TEST (CBBTest, Misuse)
 
 TEST (CBBTest, Prefixed)
 
 TEST (CBBTest, Reserve)
 
 TEST (CBBTest, StickyError)
 
 TEST (CBBTest, Unicode)
 
 TEST (CBBTest, Zero)
 
 TEST (CBSTest, ASN1Int64)
 
 TEST (CBSTest, ASN1Uint64)
 
 TEST (CBSTest, BerConvert)
 
 TEST (CBSTest, BERElementTest)
 
 TEST (CBSTest, BitString)
 
 TEST (CBSTest, GetASN1)
 
 TEST (CBSTest, GetOptionalASN1Bool)
 
 TEST (CBSTest, GetPrefixed)
 
 TEST (CBSTest, GetPrefixedBad)
 
 TEST (CBSTest, GetUint)
 
 TEST (CBSTest, GetUntilFirst)
 
 TEST (CBSTest, ImplicitString)
 
 TEST (CBSTest, ParseASN1Tag)
 
 TEST (CBSTest, Skip)
 

Variables

static const ASN1Int64Test kASN1Int64Tests []
 
static const ASN1InvalidInt64Test kASN1InvalidInt64Tests []
 
static const ASN1InvalidUint64Test kASN1InvalidUint64Tests []
 
static const ASN1Uint64Test kASN1Uint64Tests []
 
static const BERTest kBERTests []
 
static const ImplicitStringTest kImplicitStringTests []
 

Function Documentation

◆ ExpectBerConvert()

static void ExpectBerConvert ( const char *  name,
bssl::Span< const uint8_t der_expected,
bssl::Span< const uint8_t ber 
)
static

Definition at line 598 of file bytestring_test.cc.

◆ LiteralToBytes()

template<class T >
static std::vector<uint8_t> LiteralToBytes ( const T str)
static

Definition at line 1264 of file bytestring_test.cc.

◆ LiteralToCodePoints()

static std::vector<uint32_t> LiteralToCodePoints ( const char32_t *  str)
static

Definition at line 1274 of file bytestring_test.cc.

◆ TEST() [1/28]

TEST ( CBBTest  ,
AddOIDFromText   
)

Definition at line 1098 of file bytestring_test.cc.

◆ TEST() [2/28]

TEST ( CBBTest  ,
ASN1   
)

Definition at line 523 of file bytestring_test.cc.

◆ TEST() [3/28]

TEST ( CBBTest  ,
Basic   
)

Definition at line 347 of file bytestring_test.cc.

◆ TEST() [4/28]

TEST ( CBBTest  ,
DiscardChild   
)

Definition at line 452 of file bytestring_test.cc.

◆ TEST() [5/28]

TEST ( CBBTest  ,
FinishChild   
)

Definition at line 404 of file bytestring_test.cc.

◆ TEST() [6/28]

TEST ( CBBTest  ,
Fixed   
)

Definition at line 378 of file bytestring_test.cc.

◆ TEST() [7/28]

TEST ( CBBTest  ,
FlushASN1SetOf   
)

Definition at line 1193 of file bytestring_test.cc.

◆ TEST() [8/28]

TEST ( CBBTest  ,
InitUninitialized   
)

Definition at line 341 of file bytestring_test.cc.

◆ TEST() [9/28]

TEST ( CBBTest  ,
Misuse   
)

Definition at line 496 of file bytestring_test.cc.

◆ TEST() [10/28]

TEST ( CBBTest  ,
Prefixed   
)

Definition at line 421 of file bytestring_test.cc.

◆ TEST() [11/28]

TEST ( CBBTest  ,
Reserve   
)

Definition at line 970 of file bytestring_test.cc.

◆ TEST() [12/28]

TEST ( CBBTest  ,
StickyError   
)

Definition at line 992 of file bytestring_test.cc.

◆ TEST() [13/28]

TEST ( CBBTest  ,
Unicode   
)

Definition at line 1282 of file bytestring_test.cc.

◆ TEST() [14/28]

TEST ( CBBTest  ,
Zero   
)

Definition at line 963 of file bytestring_test.cc.

◆ TEST() [15/28]

TEST ( CBSTest  ,
ASN1Int64   
)

Definition at line 917 of file bytestring_test.cc.

◆ TEST() [16/28]

TEST ( CBSTest  ,
ASN1Uint64   
)

Definition at line 827 of file bytestring_test.cc.

◆ TEST() [17/28]

TEST ( CBSTest  ,
BerConvert   
)

Definition at line 617 of file bytestring_test.cc.

◆ TEST() [18/28]

TEST ( CBSTest  ,
BERElementTest   
)

Definition at line 721 of file bytestring_test.cc.

◆ TEST() [19/28]

TEST ( CBSTest  ,
BitString   
)

Definition at line 1028 of file bytestring_test.cc.

◆ TEST() [20/28]

TEST ( CBSTest  ,
GetASN1   
)

Definition at line 141 of file bytestring_test.cc.

◆ TEST() [21/28]

TEST ( CBSTest  ,
GetOptionalASN1Bool   
)

Definition at line 315 of file bytestring_test.cc.

◆ TEST() [22/28]

TEST ( CBSTest  ,
GetPrefixed   
)

Definition at line 81 of file bytestring_test.cc.

◆ TEST() [23/28]

TEST ( CBSTest  ,
GetPrefixedBad   
)

Definition at line 103 of file bytestring_test.cc.

◆ TEST() [24/28]

TEST ( CBSTest  ,
GetUint   
)

Definition at line 45 of file bytestring_test.cc.

◆ TEST() [25/28]

TEST ( CBSTest  ,
GetUntilFirst   
)

Definition at line 119 of file bytestring_test.cc.

◆ TEST() [26/28]

TEST ( CBSTest  ,
ImplicitString   
)

Definition at line 771 of file bytestring_test.cc.

◆ TEST() [27/28]

TEST ( CBSTest  ,
ParseASN1Tag   
)

Definition at line 267 of file bytestring_test.cc.

◆ TEST() [28/28]

TEST ( CBSTest  ,
Skip   
)

Definition at line 32 of file bytestring_test.cc.

Variable Documentation

◆ kASN1Int64Tests

const ASN1Int64Test kASN1Int64Tests[]
static
Initial value:
= {
{0, "\x02\x01\x00", 3},
{1, "\x02\x01\x01", 3},
{-1, "\x02\x01\xff", 3},
{127, "\x02\x01\x7f", 3},
{-127, "\x02\x01\x81", 3},
{128, "\x02\x02\x00\x80", 4},
{-128, "\x02\x01\x80", 3},
{129, "\x02\x02\x00\x81", 4},
{-129, "\x02\x02\xff\x7f", 4},
{0xdeadbeef, "\x02\x05\x00\xde\xad\xbe\xef", 7},
{INT64_C(0x0102030405060708), "\x02\x08\x01\x02\x03\x04\x05\x06\x07\x08",
10},
{INT64_MIN, "\x02\x08\x80\x00\x00\x00\x00\x00\x00\x00", 10},
{INT64_MAX, "\x02\x08\x7f\xff\xff\xff\xff\xff\xff\xff", 10},
}

Definition at line 879 of file bytestring_test.cc.

◆ kASN1InvalidInt64Tests

const ASN1InvalidInt64Test kASN1InvalidInt64Tests[]
static
Initial value:
= {
{"\x03\x01\x00", 3, false},
{"\x02\x00", 2, false},
{"\x02\x09\x01\x00\x00\x00\x00\x00\x00\x00\x00", 11, true},
{"\x02\x09\x08\xff\xff\xff\xff\xff\xff\xff\xff", 11, true},
{"\x02\x02\x00\x01", 4, false},
{"\x02\x02\xff\xff", 4, false},
}

Definition at line 902 of file bytestring_test.cc.

◆ kASN1InvalidUint64Tests

const ASN1InvalidUint64Test kASN1InvalidUint64Tests[]
static
Initial value:
= {
{"\x03\x01\x00", 3, false},
{"\x02\x00", 2, false},
{"\x02\x01\x80", 3, false},
{"\x02\x09\x01\x00\x00\x00\x00\x00\x00\x00\x00", 11, true},
{"\x02\x02\x00\x01", 4, false},
}

Definition at line 814 of file bytestring_test.cc.

◆ kASN1Uint64Tests

const ASN1Uint64Test kASN1Uint64Tests[]
static
Initial value:
= {
{0, "\x02\x01\x00", 3},
{1, "\x02\x01\x01", 3},
{127, "\x02\x01\x7f", 3},
{128, "\x02\x02\x00\x80", 4},
{0xdeadbeef, "\x02\x05\x00\xde\xad\xbe\xef", 7},
{UINT64_C(0x0102030405060708),
"\x02\x08\x01\x02\x03\x04\x05\x06\x07\x08", 10},
{UINT64_C(0xffffffffffffffff),
"\x02\x09\x00\xff\xff\xff\xff\xff\xff\xff\xff", 11},
}

Definition at line 796 of file bytestring_test.cc.

◆ kBERTests

const BERTest kBERTests[]
static
Initial value:
= {
{"0000", true, false, 0},
{"0100", true, false, 1},
{"020101", true, false, 2},
{"02810101", true, true, 2},
{"0282000101", true, true, 2},
{"028300000101", true, true, 2},
{"02840000000101", true, true, 2},
{"02850000000101", false, false, 0},
{"0280", false, false, 0},
{"2280", true, true, CBS_ASN1_CONSTRUCTED | 2},
{"3f0000", false, false, 0},
{"1f0100", false, false, 0},
{"1f4000", true, false, 0x40},
{"1f804000", false, false, 0},
}

Definition at line 699 of file bytestring_test.cc.

◆ kImplicitStringTests

const ImplicitStringTest kImplicitStringTests[]
static
Initial value:
= {
{"\x80\x03\x61\x61\x61", 5, true, "aaa", 3},
{"\xa0\x09\x04\x01\x61\x04\x01\x61\x04\x01\x61", 11, true, "aaa", 3},
{"\xa0\x0b\x24\x06\x04\x01\x61\x04\x01\x61\x04\x01\x61", 13, false, nullptr,
0},
{"\x81\x03\x61\x61\x61", 5, false, nullptr, 0},
{"\xa1\x09\x04\x01\x61\x04\x01\x61\x04\x01\x61", 11, false, nullptr, 0},
{"\xa1\x09\x0c\x01\x61\x0c\x01\x61\x0c\x01\x61", 11, false, nullptr, 0},
}

Definition at line 756 of file bytestring_test.cc.

INT64_MAX
#define INT64_MAX
Definition: stdint-msvc2008.h:139
INT64_C
#define INT64_C(val)
Definition: stdint-msvc2008.h:233
UINT64_C
#define UINT64_C(val)
Definition: stdint-msvc2008.h:238
CBS_ASN1_CONSTRUCTED
#define CBS_ASN1_CONSTRUCTED
Definition: bytestring.h:188
INT64_MIN
#define INT64_MIN
Definition: stdint-msvc2008.h:138


grpc
Author(s):
autogenerated on Fri May 16 2025 03:01:05