21#ifndef FREERDP_CRYPTO_ER_H
22#define FREERDP_CRYPTO_ER_H
24#include <freerdp/config.h>
25#if !defined(WITHOUT_FREERDP_3x_DEPRECATED)
27#include <freerdp/api.h>
28#include <freerdp/types.h>
30#include <winpr/stream.h>
35#define ER_CLASS_MASK 0xC0
36#define ER_CLASS_UNIV 0x00
37#define ER_CLASS_APPL 0x40
38#define ER_CLASS_CTXT 0x80
39#define ER_CLASS_PRIV 0xC0
42#define ER_PC_MASK 0x20
43#define ER_PRIMITIVE 0x00
44#define ER_CONSTRUCT 0x20
47#define ER_TAG_MASK 0x1F
48#define ER_TAG_BOOLEAN 0x01
49#define ER_TAG_INTEGER 0x02
50#define ER_TAG_BIT_STRING 0x03
51#define ER_TAG_OCTET_STRING 0x04
52#define ER_TAG_OBJECT_IDENTIFIER 0x06
53#define ER_TAG_ENUMERATED 0x0A
54#define ER_TAG_SEQUENCE 0x10
55#define ER_TAG_SEQUENCE_OF 0x10
56#define ER_TAG_GENERAL_STRING 0x1B
57#define ER_TAG_GENERALIZED_TIME 0x18
59#define ER_PC(_pc) (_pc ? ER_CONSTRUCT : ER_PRIMITIVE)
66 WINPR_DEPRECATED_VAR(
"since 3.21.1", FREERDP_API
void er_read_length(
wStream* s,
int* length));
67 WINPR_DEPRECATED_VAR(
"since 3.21.1",
68 FREERDP_API
int er_write_length(
wStream* s,
int length, BOOL flag));
71 WINPR_DEPRECATED_VAR(
"since 3.21.1", FREERDP_API
int _er_skip_length(
int length));
72 WINPR_DEPRECATED_VAR(
"since 3.21.1", FREERDP_API
int er_get_content_length(
int length));
73 WINPR_DEPRECATED_VAR(
"since 3.21.1",
74 FREERDP_API BOOL er_read_universal_tag(
wStream* s, BYTE tag, BOOL pc));
75 WINPR_DEPRECATED_VAR(
"since 3.21.1",
76 FREERDP_API
void er_write_universal_tag(
wStream* s, BYTE tag, BOOL pc));
77 WINPR_DEPRECATED_VAR(
"since 3.21.1",
78 FREERDP_API BOOL er_read_application_tag(
wStream* s, BYTE tag,
80 WINPR_DEPRECATED_VAR(
"since 3.21.1",
81 FREERDP_API
void er_write_application_tag(
wStream* s, BYTE tag,
int length,
83 WINPR_DEPRECATED_VAR(
"since 3.21.1",
84 FREERDP_API BOOL er_read_enumerated(
wStream* s, BYTE* enumerated,
86 WINPR_DEPRECATED_VAR(
"since 3.21.1",
87 FREERDP_API
void er_write_enumerated(
wStream* s, BYTE enumerated,
88 BYTE count, BOOL flag));
89 WINPR_DEPRECATED_VAR(
"since 3.21.1",
90 FREERDP_API BOOL er_read_contextual_tag(
wStream* s, BYTE tag,
int* length,
92 WINPR_DEPRECATED_VAR(
"since 3.21.1",
93 FREERDP_API
int er_write_contextual_tag(
wStream* s, BYTE tag,
int length,
95 WINPR_DEPRECATED_VAR(
"since 3.21.1", FREERDP_API
int er_skip_contextual_tag(
int length));
96 WINPR_DEPRECATED_VAR(
"since 3.21.1",
97 FREERDP_API BOOL er_read_sequence_tag(
wStream* s,
int* length));
98 WINPR_DEPRECATED_VAR(
"since 3.21.1",
99 FREERDP_API
int er_write_sequence_tag(
wStream* s,
int length, BOOL flag));
100 WINPR_DEPRECATED_VAR(
"since 3.21.1", FREERDP_API
int er_skip_sequence(
int length));
101 WINPR_DEPRECATED_VAR(
"since 3.21.1", FREERDP_API
int er_skip_sequence_tag(
int length));
102 WINPR_DEPRECATED_VAR(
"since 3.21.1",
103 FREERDP_API BOOL er_read_bit_string(
wStream* s,
int* length,
105 WINPR_DEPRECATED_VAR(
"since 3.21.1",
106 FREERDP_API BOOL er_write_bit_string_tag(
wStream* s, UINT32 length,
107 BYTE padding, BOOL flag));
108 WINPR_DEPRECATED_VAR(
"since 3.21.1",
109 FREERDP_API BOOL er_read_octet_string(
wStream* s,
int* length));
110 WINPR_DEPRECATED_VAR(
"since 3.21.1",
111 FREERDP_API
void er_write_octet_string(
wStream* s, BYTE* oct_str,
112 int length, BOOL flag));
113 WINPR_DEPRECATED_VAR(
"since 3.21.1",
114 FREERDP_API
int er_write_octet_string_tag(
wStream* s,
int length,
116 WINPR_DEPRECATED_VAR(
"since 3.21.1", FREERDP_API
int er_skip_octet_string(
int length));
117 WINPR_DEPRECATED_VAR(
"since 3.21.1", FREERDP_API BOOL er_read_BOOL(
wStream* s, BOOL* value));
118 WINPR_DEPRECATED_VAR(
"since 3.21.1", FREERDP_API
void er_write_BOOL(
wStream* s, BOOL value));
119 WINPR_DEPRECATED_VAR(
"since 3.21.1",
120 FREERDP_API BOOL er_read_integer(
wStream* s, UINT32* value));
121 WINPR_DEPRECATED_VAR(
"since 3.21.1", FREERDP_API
int er_write_integer(
wStream* s, INT32 value));
122 WINPR_DEPRECATED_VAR(
"since 3.21.1",
123 FREERDP_API BOOL er_read_integer_length(
wStream* s,
int* length));
124 WINPR_DEPRECATED_VAR(
"since 3.21.1", FREERDP_API
int er_skip_integer(INT32 value));