20#ifndef FREERDP_CRYPTO_PER_H
21#define FREERDP_CRYPTO_PER_H
23#include <freerdp/api.h>
25#include <winpr/stream.h>
33 FREERDP_API BOOL per_read_length(
wStream* s, UINT16* length);
36 FREERDP_API BOOL per_write_length(
wStream* s, UINT16 length);
39 FREERDP_API BOOL per_read_choice(
wStream* s, BYTE* choice);
42 FREERDP_API BOOL per_write_choice(
wStream* s, BYTE choice);
45 FREERDP_API BOOL per_read_selection(
wStream* s, BYTE* selection);
48 FREERDP_API BOOL per_write_selection(
wStream* s, BYTE selection);
51 FREERDP_API BOOL per_read_number_of_sets(
wStream* s, BYTE* number);
54 FREERDP_API BOOL per_write_number_of_sets(
wStream* s, BYTE number);
57 FREERDP_API BOOL per_read_padding(
wStream* s, UINT16 length);
60 FREERDP_API BOOL per_write_padding(
wStream* s, UINT16 length);
63 FREERDP_API BOOL per_read_integer(
wStream* s, UINT32* integer);
66 FREERDP_API BOOL per_read_integer16(
wStream* s, UINT16* integer, UINT16 min);
69 FREERDP_API BOOL per_write_integer(
wStream* s, UINT32 integer);
72 FREERDP_API BOOL per_write_integer16(
wStream* s, UINT16 integer, UINT16 min);
75 FREERDP_API BOOL per_read_enumerated(
wStream* s, BYTE* enumerated, BYTE count);
78 FREERDP_API BOOL per_write_enumerated(
wStream* s, BYTE enumerated, BYTE count);
81 FREERDP_API BOOL per_write_object_identifier(
wStream* s,
const BYTE oid[6]);
84 FREERDP_API BOOL per_read_object_identifier(
wStream* s,
const BYTE oid[6]);
87 FREERDP_API BOOL per_read_octet_string(
wStream* s,
const BYTE* oct_str, UINT16 length,
91 FREERDP_API BOOL per_write_octet_string(
wStream* s,
const BYTE* oct_str, UINT16 length,
95 FREERDP_API BOOL per_read_numeric_string(
wStream* s, UINT16 min);
98 FREERDP_API BOOL per_write_numeric_string(
wStream* s,
const BYTE* num_str, UINT16 length,