FreeRDP
er.c File Reference
#include <freerdp/config.h>
#include <winpr/crt.h>
#include <freerdp/crypto/er.h>
#include <freerdp/crypto/ber.h>
#include <freerdp/crypto/der.h>

Functions

void er_read_length (wStream *s, int *length)
 
int er_write_length (wStream *s, int length, BOOL flag)
 
int _er_skip_length (int length)
 
int er_get_content_length (int length)
 
BOOL er_read_universal_tag (wStream *s, BYTE tag, BOOL pc)
 
void er_write_universal_tag (wStream *s, BYTE tag, BOOL pc)
 
BOOL er_read_application_tag (wStream *s, BYTE tag, int *length)
 
void er_write_application_tag (wStream *s, BYTE tag, int length, BOOL flag)
 
BOOL er_read_contextual_tag (wStream *s, BYTE tag, int *length, BOOL pc)
 
int er_write_contextual_tag (wStream *s, BYTE tag, int length, BOOL pc, BOOL flag)
 
int er_skip_contextual_tag (int length)
 
BOOL er_read_sequence_tag (wStream *s, int *length)
 
int er_write_sequence_tag (wStream *s, int length, BOOL flag)
 
int er_skip_sequence (int length)
 
int er_skip_sequence_tag (int length)
 
BOOL er_read_enumerated (wStream *s, BYTE *enumerated, BYTE count)
 
void er_write_enumerated (wStream *s, BYTE enumerated, BYTE count, BOOL flag)
 
BOOL er_read_bit_string (wStream *s, int *length, BYTE *padding)
 
BOOL er_write_bit_string_tag (wStream *s, UINT32 length, BYTE padding, BOOL flag)
 
BOOL er_read_octet_string (wStream *s, int *length)
 
void er_write_octet_string (wStream *s, BYTE *oct_str, int length, BOOL flag)
 
int er_write_octet_string_tag (wStream *s, int length, BOOL flag)
 
int er_skip_octet_string (int length)
 
BOOL er_read_BOOL (wStream *s, BOOL *value)
 
void er_write_BOOL (wStream *s, BOOL value)
 
BOOL er_read_integer (wStream *s, UINT32 *value)
 
int er_write_integer (wStream *s, INT32 value)
 
int er_skip_integer (INT32 value)
 
BOOL er_read_integer_length (wStream *s, int *length)
 

Function Documentation

◆ _er_skip_length()

int _er_skip_length ( int  length)
Here is the caller graph for this function:

◆ er_get_content_length()

int er_get_content_length ( int  length)

◆ er_read_application_tag()

BOOL er_read_application_tag ( wStream s,
BYTE  tag,
int *  length 
)

Read er Application tag.

Parameters
sstream
tager application-defined tag
lengthlength
Here is the call graph for this function:

◆ er_read_bit_string()

BOOL er_read_bit_string ( wStream s,
int *  length,
BYTE padding 
)
Here is the call graph for this function:

◆ er_read_BOOL()

BOOL er_read_BOOL ( wStream s,
BOOL *  value 
)

Read a er BOOLEAN

Parameters
sA pointer to the stream to read from
valueA pointer to read the data to
Here is the call graph for this function:

◆ er_read_contextual_tag()

BOOL er_read_contextual_tag ( wStream s,
BYTE  tag,
int *  length,
BOOL  pc 
)
Here is the call graph for this function:

◆ er_read_enumerated()

BOOL er_read_enumerated ( wStream s,
BYTE enumerated,
BYTE  count 
)
Here is the call graph for this function:

◆ er_read_integer()

BOOL er_read_integer ( wStream s,
UINT32 *  value 
)
Here is the call graph for this function:

◆ er_read_integer_length()

BOOL er_read_integer_length ( wStream s,
int *  length 
)
Here is the call graph for this function:

◆ er_read_length()

void er_read_length ( wStream s,
int *  length 
)

FreeRDP: A Remote Desktop Protocol Implementation ASN.1 Encoding Rules (BER/DER common functions)

Copyright 2011 Marc-Andre Moreau marca.nosp@m.ndre.nosp@m..more.nosp@m.au@g.nosp@m.mail..nosp@m.com Modified by Jiten Pathy

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

  http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Here is the caller graph for this function:

◆ er_read_octet_string()

BOOL er_read_octet_string ( wStream s,
int *  length 
)
Here is the call graph for this function:

◆ er_read_sequence_tag()

BOOL er_read_sequence_tag ( wStream s,
int *  length 
)
Here is the call graph for this function:

◆ er_read_universal_tag()

BOOL er_read_universal_tag ( wStream s,
BYTE  tag,
BOOL  pc 
)

Read er Universal tag.

Parameters
sA pointer to the stream to write to
tager universally-defined tag
Returns
TRUE for success
Here is the caller graph for this function:

◆ er_skip_contextual_tag()

int er_skip_contextual_tag ( int  length)
Here is the call graph for this function:

◆ er_skip_integer()

int er_skip_integer ( INT32  value)
Here is the call graph for this function:

◆ er_skip_octet_string()

int er_skip_octet_string ( int  length)
Here is the call graph for this function:

◆ er_skip_sequence()

int er_skip_sequence ( int  length)
Here is the call graph for this function:

◆ er_skip_sequence_tag()

int er_skip_sequence_tag ( int  length)
Here is the call graph for this function:

◆ er_write_application_tag()

void er_write_application_tag ( wStream s,
BYTE  tag,
int  length,
BOOL  flag 
)

Write er Application tag.

Parameters
sstream
tager application-defined tag
lengthlength
Here is the call graph for this function:

◆ er_write_bit_string_tag()

BOOL er_write_bit_string_tag ( wStream s,
UINT32  length,
BYTE  padding,
BOOL  flag 
)
Here is the call graph for this function:

◆ er_write_BOOL()

void er_write_BOOL ( wStream s,
BOOL  value 
)

Write a er BOOLEAN

Parameters
sA pointer to the stream to write to
valueThe value to write
Here is the call graph for this function:

◆ er_write_contextual_tag()

int er_write_contextual_tag ( wStream s,
BYTE  tag,
int  length,
BOOL  pc,
BOOL  flag 
)
Here is the call graph for this function:

◆ er_write_enumerated()

void er_write_enumerated ( wStream s,
BYTE  enumerated,
BYTE  count,
BOOL  flag 
)
Here is the call graph for this function:

◆ er_write_integer()

int er_write_integer ( wStream s,
INT32  value 
)

Write a er INTEGER

Parameters
sA pointer to the stream to write to
valuethe value to write
Here is the call graph for this function:

◆ er_write_length()

int er_write_length ( wStream s,
int  length,
BOOL  flag 
)

Write er length.

Parameters
sstream
lengthlength
Here is the call graph for this function:
Here is the caller graph for this function:

◆ er_write_octet_string()

void er_write_octet_string ( wStream s,
BYTE oct_str,
int  length,
BOOL  flag 
)

Write a er OCTET_STRING

Parameters
sstream
oct_stroctet string
lengthstring length
Here is the call graph for this function:

◆ er_write_octet_string_tag()

int er_write_octet_string_tag ( wStream s,
int  length,
BOOL  flag 
)
Here is the call graph for this function:

◆ er_write_sequence_tag()

int er_write_sequence_tag ( wStream s,
int  length,
BOOL  flag 
)

Write er SEQUENCE tag.

Parameters
sstream
lengthlength
Here is the call graph for this function:

◆ er_write_universal_tag()

void er_write_universal_tag ( wStream s,
BYTE  tag,
BOOL  pc 
)

Write er Universal tag.

Parameters
sstream
tager universally-defined tag
pcprimitive (FALSE) or constructed (TRUE)
Here is the call graph for this function:
Here is the caller graph for this function: