mirror of
https://github.com/morgan9e/FreeRDP
synced 2026-04-14 00:14:11 +09:00
[winpr] Add initializer functions
* Add initializer for wStream * Add initializer for ASN1 decoder
This commit is contained in:
@@ -394,9 +394,9 @@ static char* KERB_RPC_UNICODESTR_to_charptr(const RPC_UNICODE_STRING* src)
|
|||||||
|
|
||||||
static BOOL extractAuthData(const KERB_ASN1_DATA* src, krb5_authdata* authData, BOOL* haveData)
|
static BOOL extractAuthData(const KERB_ASN1_DATA* src, krb5_authdata* authData, BOOL* haveData)
|
||||||
{
|
{
|
||||||
WinPrAsn1Decoder dec = { .encoding = WINPR_ASN1_BER, { 0 } };
|
WinPrAsn1Decoder dec = WinPrAsn1Decoder_init();
|
||||||
WinPrAsn1Decoder dec2 = { .encoding = WINPR_ASN1_BER, { 0 } };
|
WinPrAsn1Decoder dec2 = WinPrAsn1Decoder_init();
|
||||||
WinPrAsn1Decoder dec3 = { .encoding = WINPR_ASN1_BER, { 0 } };
|
WinPrAsn1Decoder dec3 = WinPrAsn1Decoder_init();
|
||||||
WinPrAsn1Decoder_InitMem(&dec, WINPR_ASN1_DER, src->Asn1Buffer, src->Asn1BufferHints.count);
|
WinPrAsn1Decoder_InitMem(&dec, WINPR_ASN1_DER, src->Asn1Buffer, src->Asn1BufferHints.count);
|
||||||
BOOL error = FALSE;
|
BOOL error = FALSE;
|
||||||
WinPrAsn1_INTEGER adType = 0;
|
WinPrAsn1_INTEGER adType = 0;
|
||||||
@@ -429,8 +429,8 @@ static BOOL extractAuthData(const KERB_ASN1_DATA* src, krb5_authdata* authData,
|
|||||||
|
|
||||||
static BOOL extractChecksum(const KERB_ASN1_DATA* src, krb5_checksum* dst)
|
static BOOL extractChecksum(const KERB_ASN1_DATA* src, krb5_checksum* dst)
|
||||||
{
|
{
|
||||||
WinPrAsn1Decoder dec = { .encoding = WINPR_ASN1_BER, { 0 } };
|
WinPrAsn1Decoder dec = WinPrAsn1Decoder_init();
|
||||||
WinPrAsn1Decoder dec2 = { .encoding = WINPR_ASN1_BER, { 0 } };
|
WinPrAsn1Decoder dec2 = WinPrAsn1Decoder_init();
|
||||||
WinPrAsn1Decoder_InitMem(&dec, WINPR_ASN1_DER, src->Asn1Buffer, src->Asn1BufferHints.count);
|
WinPrAsn1Decoder_InitMem(&dec, WINPR_ASN1_DER, src->Asn1Buffer, src->Asn1BufferHints.count);
|
||||||
BOOL error = FALSE;
|
BOOL error = FALSE;
|
||||||
WinPrAsn1_OctetString os;
|
WinPrAsn1_OctetString os;
|
||||||
@@ -626,8 +626,8 @@ out:
|
|||||||
|
|
||||||
static BOOL rdpear_findEncryptedData(const KERB_ASN1_DATA* src, int* penctype, krb5_data* data)
|
static BOOL rdpear_findEncryptedData(const KERB_ASN1_DATA* src, int* penctype, krb5_data* data)
|
||||||
{
|
{
|
||||||
WinPrAsn1Decoder dec = { .encoding = WINPR_ASN1_BER, { 0 } };
|
WinPrAsn1Decoder dec = WinPrAsn1Decoder_init();
|
||||||
WinPrAsn1Decoder dec2 = { .encoding = WINPR_ASN1_BER, { 0 } };
|
WinPrAsn1Decoder dec2 = WinPrAsn1Decoder_init();
|
||||||
WinPrAsn1Decoder_InitMem(&dec, WINPR_ASN1_DER, src->Asn1Buffer, src->Asn1BufferHints.count);
|
WinPrAsn1Decoder_InitMem(&dec, WINPR_ASN1_DER, src->Asn1Buffer, src->Asn1BufferHints.count);
|
||||||
BOOL error = FALSE;
|
BOOL error = FALSE;
|
||||||
WinPrAsn1_INTEGER encType = 0;
|
WinPrAsn1_INTEGER encType = 0;
|
||||||
@@ -974,8 +974,8 @@ static UINT rdpear_on_data_received(IWTSVirtualChannelCallback* pChannelCallback
|
|||||||
if (!freerdp_nla_decrypt(rdpear->rdp_context, &inBuffer, &decrypted))
|
if (!freerdp_nla_decrypt(rdpear->rdp_context, &inBuffer, &decrypted))
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
WinPrAsn1Decoder dec = { .encoding = WINPR_ASN1_BER, { 0 } };
|
WinPrAsn1Decoder dec = WinPrAsn1Decoder_init();
|
||||||
WinPrAsn1Decoder dec2 = { .encoding = WINPR_ASN1_BER, { 0 } };
|
WinPrAsn1Decoder dec2 = WinPrAsn1Decoder_init();
|
||||||
wStream decodedStream = WINPR_C_ARRAY_INIT;
|
wStream decodedStream = WINPR_C_ARRAY_INIT;
|
||||||
Stream_StaticInit(&decodedStream, decrypted.pvBuffer, decrypted.cbBuffer);
|
Stream_StaticInit(&decodedStream, decrypted.pvBuffer, decrypted.cbBuffer);
|
||||||
WinPrAsn1Decoder_Init(&dec, WINPR_ASN1_DER, &decodedStream);
|
WinPrAsn1Decoder_Init(&dec, WINPR_ASN1_DER, &decodedStream);
|
||||||
|
|||||||
@@ -1355,8 +1355,8 @@ typedef enum
|
|||||||
|
|
||||||
static BOOL nla_read_ts_credentials(rdpNla* nla, SecBuffer* data)
|
static BOOL nla_read_ts_credentials(rdpNla* nla, SecBuffer* data)
|
||||||
{
|
{
|
||||||
WinPrAsn1Decoder dec = { .encoding = WINPR_ASN1_BER, { 0 } };
|
WinPrAsn1Decoder dec = WinPrAsn1Decoder_init();
|
||||||
WinPrAsn1Decoder dec2 = { .encoding = WINPR_ASN1_BER, { 0 } };
|
WinPrAsn1Decoder dec2 = WinPrAsn1Decoder_init();
|
||||||
WinPrAsn1_OctetString credentials = WINPR_C_ARRAY_INIT;
|
WinPrAsn1_OctetString credentials = WINPR_C_ARRAY_INIT;
|
||||||
BOOL error = FALSE;
|
BOOL error = FALSE;
|
||||||
WinPrAsn1_INTEGER credType = -1;
|
WinPrAsn1_INTEGER credType = -1;
|
||||||
@@ -1423,7 +1423,7 @@ static BOOL nla_read_ts_credentials(rdpNla* nla, SecBuffer* data)
|
|||||||
settings->PasswordIsSmartcardPin = TRUE;
|
settings->PasswordIsSmartcardPin = TRUE;
|
||||||
|
|
||||||
/* cspData [1] TSCspDataDetail */
|
/* cspData [1] TSCspDataDetail */
|
||||||
WinPrAsn1Decoder cspDetails = { .encoding = WINPR_ASN1_BER, { 0 } };
|
WinPrAsn1Decoder cspDetails = WinPrAsn1Decoder_init();
|
||||||
if (!WinPrAsn1DecReadContextualSequence(&dec, 1, &error, &cspDetails) && error)
|
if (!WinPrAsn1DecReadContextualSequence(&dec, 1, &error, &cspDetails) && error)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
if (!nla_read_TSCspDataDetail(&cspDetails, settings))
|
if (!nla_read_TSCspDataDetail(&cspDetails, settings))
|
||||||
@@ -1450,7 +1450,7 @@ static BOOL nla_read_ts_credentials(rdpNla* nla, SecBuffer* data)
|
|||||||
.ServiceTicket = NULL,
|
.ServiceTicket = NULL,
|
||||||
.TicketGrantingTicket = NULL };
|
.TicketGrantingTicket = NULL };
|
||||||
|
|
||||||
WinPrAsn1Decoder logonCredsSeq = { .encoding = WINPR_ASN1_BER, { 0 } };
|
WinPrAsn1Decoder logonCredsSeq = WinPrAsn1Decoder_init();
|
||||||
|
|
||||||
if (!WinPrAsn1DecReadContextualSequence(&dec2, 0, &error, &logonCredsSeq) || error)
|
if (!WinPrAsn1DecReadContextualSequence(&dec2, 0, &error, &logonCredsSeq) || error)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
@@ -1474,12 +1474,12 @@ static BOOL nla_read_ts_credentials(rdpNla* nla, SecBuffer* data)
|
|||||||
|
|
||||||
/* supplementalCreds [1] SEQUENCE OF TSRemoteGuardPackageCred OPTIONAL, */
|
/* supplementalCreds [1] SEQUENCE OF TSRemoteGuardPackageCred OPTIONAL, */
|
||||||
MSV1_0_REMOTE_SUPPLEMENTAL_CREDENTIAL* suppCreds = NULL;
|
MSV1_0_REMOTE_SUPPLEMENTAL_CREDENTIAL* suppCreds = NULL;
|
||||||
WinPrAsn1Decoder suppCredsSeq = { .encoding = WINPR_ASN1_BER, { 0 } };
|
WinPrAsn1Decoder suppCredsSeq = WinPrAsn1Decoder_init();
|
||||||
|
|
||||||
if (WinPrAsn1DecReadContextualSequence(&dec2, 1, &error, &suppCredsSeq) &&
|
if (WinPrAsn1DecReadContextualSequence(&dec2, 1, &error, &suppCredsSeq) &&
|
||||||
Stream_GetRemainingLength(&suppCredsSeq.source))
|
Stream_GetRemainingLength(&suppCredsSeq.source))
|
||||||
{
|
{
|
||||||
WinPrAsn1Decoder ntlmCredsSeq = { .encoding = WINPR_ASN1_BER, { 0 } };
|
WinPrAsn1Decoder ntlmCredsSeq = WinPrAsn1Decoder_init();
|
||||||
if (!WinPrAsn1DecReadSequence(&suppCredsSeq, &ntlmCredsSeq))
|
if (!WinPrAsn1DecReadSequence(&suppCredsSeq, &ntlmCredsSeq))
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
@@ -2065,8 +2065,8 @@ fail:
|
|||||||
|
|
||||||
static int nla_decode_ts_request(rdpNla* nla, wStream* s)
|
static int nla_decode_ts_request(rdpNla* nla, wStream* s)
|
||||||
{
|
{
|
||||||
WinPrAsn1Decoder dec = { .encoding = WINPR_ASN1_BER, { 0 } };
|
WinPrAsn1Decoder dec = WinPrAsn1Decoder_init();
|
||||||
WinPrAsn1Decoder dec2 = { .encoding = WINPR_ASN1_BER, { 0 } };
|
WinPrAsn1Decoder dec2 = WinPrAsn1Decoder_init();
|
||||||
BOOL error = FALSE;
|
BOOL error = FALSE;
|
||||||
WinPrAsn1_tagId tag = WINPR_C_ARRAY_INIT;
|
WinPrAsn1_tagId tag = WINPR_C_ARRAY_INIT;
|
||||||
WinPrAsn1_INTEGER val = WINPR_C_ARRAY_INIT;
|
WinPrAsn1_INTEGER val = WINPR_C_ARRAY_INIT;
|
||||||
@@ -2108,7 +2108,7 @@ static int nla_decode_ts_request(rdpNla* nla, wStream* s)
|
|||||||
|
|
||||||
while (WinPrAsn1DecReadContextualTag(&dec, &tag, &dec2) != 0)
|
while (WinPrAsn1DecReadContextualTag(&dec, &tag, &dec2) != 0)
|
||||||
{
|
{
|
||||||
WinPrAsn1Decoder dec3 = { .encoding = WINPR_ASN1_BER, { 0 } };
|
WinPrAsn1Decoder dec3 = WinPrAsn1Decoder_init();
|
||||||
WinPrAsn1_OctetString octet_string = WINPR_C_ARRAY_INIT;
|
WinPrAsn1_OctetString octet_string = WINPR_C_ARRAY_INIT;
|
||||||
|
|
||||||
switch (tag)
|
switch (tag)
|
||||||
|
|||||||
@@ -68,6 +68,18 @@ struct WinPrAsn1Decoder
|
|||||||
|
|
||||||
typedef struct WinPrAsn1Decoder WinPrAsn1Decoder;
|
typedef struct WinPrAsn1Decoder WinPrAsn1Decoder;
|
||||||
|
|
||||||
|
/** @brief helper initializing a \b WinPrAsn1Decoder context
|
||||||
|
*
|
||||||
|
* @return The initialized context
|
||||||
|
* @since version 3.24.0
|
||||||
|
*/
|
||||||
|
static inline WinPrAsn1Decoder WinPrAsn1Decoder_init(void)
|
||||||
|
{
|
||||||
|
const wStream stream = Stream_Init();
|
||||||
|
const WinPrAsn1Decoder empty = { WINPR_ASN1_BER, stream };
|
||||||
|
return empty;
|
||||||
|
}
|
||||||
|
|
||||||
typedef BYTE WinPrAsn1_tag;
|
typedef BYTE WinPrAsn1_tag;
|
||||||
typedef BYTE WinPrAsn1_tagId;
|
typedef BYTE WinPrAsn1_tagId;
|
||||||
typedef BOOL WinPrAsn1_BOOL;
|
typedef BOOL WinPrAsn1_BOOL;
|
||||||
|
|||||||
@@ -51,6 +51,17 @@ extern "C"
|
|||||||
BOOL isOwner;
|
BOOL isOwner;
|
||||||
} wStream;
|
} wStream;
|
||||||
|
|
||||||
|
/** @brief helper initializing a \b wStream context
|
||||||
|
*
|
||||||
|
* @return The initialized context
|
||||||
|
* @since version 3.24.0
|
||||||
|
*/
|
||||||
|
static inline wStream Stream_Init(void)
|
||||||
|
{
|
||||||
|
const wStream empty = { NULL, NULL, 0, 0, 0, NULL, FALSE, FALSE };
|
||||||
|
return empty;
|
||||||
|
}
|
||||||
|
|
||||||
static inline size_t Stream_Capacity(const wStream* _s);
|
static inline size_t Stream_Capacity(const wStream* _s);
|
||||||
WINPR_API size_t Stream_GetRemainingCapacity(const wStream* _s);
|
WINPR_API size_t Stream_GetRemainingCapacity(const wStream* _s);
|
||||||
WINPR_API size_t Stream_GetRemainingLength(const wStream* _s);
|
WINPR_API size_t Stream_GetRemainingLength(const wStream* _s);
|
||||||
|
|||||||
@@ -875,8 +875,8 @@ static SECURITY_STATUS get_piv_container_name(NCryptP11KeyHandle* key, const BYT
|
|||||||
char container_name[PIV_CONTAINER_NAME_LEN + 1] = WINPR_C_ARRAY_INIT;
|
char container_name[PIV_CONTAINER_NAME_LEN + 1] = WINPR_C_ARRAY_INIT;
|
||||||
DWORD buf_len = 0;
|
DWORD buf_len = 0;
|
||||||
SECURITY_STATUS ret = NTE_BAD_KEY;
|
SECURITY_STATUS ret = NTE_BAD_KEY;
|
||||||
WinPrAsn1Decoder dec = { .encoding = WINPR_ASN1_BER, { 0 } };
|
WinPrAsn1Decoder dec = WinPrAsn1Decoder_init();
|
||||||
WinPrAsn1Decoder dec2 = { .encoding = WINPR_ASN1_BER, { 0 } };
|
WinPrAsn1Decoder dec2 = WinPrAsn1Decoder_init();
|
||||||
size_t len = 0;
|
size_t len = 0;
|
||||||
BYTE tag = 0;
|
BYTE tag = 0;
|
||||||
BYTE* p = NULL;
|
BYTE* p = NULL;
|
||||||
|
|||||||
@@ -725,7 +725,7 @@ static BOOL append(char* dst, size_t dstSize, const char* src)
|
|||||||
static BOOL kerberos_rd_tgt_req_tag2(WinPrAsn1Decoder* dec, char* buf, size_t len)
|
static BOOL kerberos_rd_tgt_req_tag2(WinPrAsn1Decoder* dec, char* buf, size_t len)
|
||||||
{
|
{
|
||||||
BOOL rc = FALSE;
|
BOOL rc = FALSE;
|
||||||
WinPrAsn1Decoder seq = { .encoding = WINPR_ASN1_BER, { 0 } };
|
WinPrAsn1Decoder seq = WinPrAsn1Decoder_init();
|
||||||
|
|
||||||
/* server-name [2] PrincipalName (SEQUENCE) */
|
/* server-name [2] PrincipalName (SEQUENCE) */
|
||||||
if (!WinPrAsn1DecReadSequence(dec, &seq))
|
if (!WinPrAsn1DecReadSequence(dec, &seq))
|
||||||
@@ -810,7 +810,7 @@ static BOOL kerberos_rd_tgt_req(WinPrAsn1Decoder* dec, char** target)
|
|||||||
if (len == 0)
|
if (len == 0)
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
||||||
WinPrAsn1Decoder dec2 = { .encoding = WINPR_ASN1_BER, { 0 } };
|
WinPrAsn1Decoder dec2 = WinPrAsn1Decoder_init();
|
||||||
WinPrAsn1_tagId tag = 0;
|
WinPrAsn1_tagId tag = 0;
|
||||||
if (WinPrAsn1DecReadContextualTag(dec, &tag, &dec2) == 0)
|
if (WinPrAsn1DecReadContextualTag(dec, &tag, &dec2) == 0)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
@@ -856,7 +856,7 @@ static BOOL kerberos_rd_tgt_rep(WinPrAsn1Decoder* dec, krb5_data* ticket)
|
|||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
/* ticket [2] Ticket */
|
/* ticket [2] Ticket */
|
||||||
WinPrAsn1Decoder asnTicket = { .encoding = WINPR_ASN1_BER, { 0 } };
|
WinPrAsn1Decoder asnTicket = WinPrAsn1Decoder_init();
|
||||||
WinPrAsn1_tagId tag = 0;
|
WinPrAsn1_tagId tag = 0;
|
||||||
if (WinPrAsn1DecReadContextualTag(dec, &tag, &asnTicket) == 0)
|
if (WinPrAsn1DecReadContextualTag(dec, &tag, &asnTicket) == 0)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
@@ -884,11 +884,11 @@ static BOOL kerberos_rd_tgt_token(const sspi_gss_data* token, char** target, krb
|
|||||||
if (target)
|
if (target)
|
||||||
*target = NULL;
|
*target = NULL;
|
||||||
|
|
||||||
WinPrAsn1Decoder der = { .encoding = WINPR_ASN1_BER, { 0 } };
|
WinPrAsn1Decoder der = WinPrAsn1Decoder_init();
|
||||||
WinPrAsn1Decoder_InitMem(&der, WINPR_ASN1_DER, (BYTE*)token->data, token->length);
|
WinPrAsn1Decoder_InitMem(&der, WINPR_ASN1_DER, (BYTE*)token->data, token->length);
|
||||||
|
|
||||||
/* KERB-TGT-REQUEST (SEQUENCE) */
|
/* KERB-TGT-REQUEST (SEQUENCE) */
|
||||||
WinPrAsn1Decoder seq = { .encoding = WINPR_ASN1_BER, { 0 } };
|
WinPrAsn1Decoder seq = WinPrAsn1Decoder_init();
|
||||||
if (!WinPrAsn1DecReadSequence(&der, &seq))
|
if (!WinPrAsn1DecReadSequence(&der, &seq))
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
|
|||||||
@@ -477,8 +477,8 @@ cleanup:
|
|||||||
|
|
||||||
static BOOL negotiate_read_neg_token(PSecBuffer input, NegToken* token)
|
static BOOL negotiate_read_neg_token(PSecBuffer input, NegToken* token)
|
||||||
{
|
{
|
||||||
WinPrAsn1Decoder dec = { .encoding = WINPR_ASN1_BER, { 0 } };
|
WinPrAsn1Decoder dec = WinPrAsn1Decoder_init();
|
||||||
WinPrAsn1Decoder dec2 = { .encoding = WINPR_ASN1_BER, { 0 } };
|
WinPrAsn1Decoder dec2 = WinPrAsn1Decoder_init();
|
||||||
WinPrAsn1_OID oid = WINPR_C_ARRAY_INIT;
|
WinPrAsn1_OID oid = WINPR_C_ARRAY_INIT;
|
||||||
WinPrAsn1_tagId contextual = 0;
|
WinPrAsn1_tagId contextual = 0;
|
||||||
WinPrAsn1_tag tag = 0;
|
WinPrAsn1_tag tag = 0;
|
||||||
@@ -990,8 +990,8 @@ static SECURITY_STATUS SEC_ENTRY negotiate_InitializeSecurityContextA(
|
|||||||
|
|
||||||
static const Mech* guessMech(PSecBuffer input_buffer, BOOL* spNego, WinPrAsn1_OID* oid)
|
static const Mech* guessMech(PSecBuffer input_buffer, BOOL* spNego, WinPrAsn1_OID* oid)
|
||||||
{
|
{
|
||||||
WinPrAsn1Decoder decoder = { .encoding = WINPR_ASN1_BER, { 0 } };
|
WinPrAsn1Decoder decoder = WinPrAsn1Decoder_init();
|
||||||
WinPrAsn1Decoder appDecoder = { .encoding = WINPR_ASN1_BER, { 0 } };
|
WinPrAsn1Decoder appDecoder = WinPrAsn1Decoder_init();
|
||||||
WinPrAsn1_tagId tag = 0;
|
WinPrAsn1_tagId tag = 0;
|
||||||
const char ssp[] = "NTLMSSP";
|
const char ssp[] = "NTLMSSP";
|
||||||
|
|
||||||
@@ -1039,8 +1039,8 @@ static SECURITY_STATUS SEC_ENTRY negotiate_AcceptSecurityContext(
|
|||||||
SecBufferDesc mech_input = { SECBUFFER_VERSION, 1, &input_token.mechToken };
|
SecBufferDesc mech_input = { SECBUFFER_VERSION, 1, &input_token.mechToken };
|
||||||
SecBufferDesc mech_output = { SECBUFFER_VERSION, 1, &output_token.mechToken };
|
SecBufferDesc mech_output = { SECBUFFER_VERSION, 1, &output_token.mechToken };
|
||||||
SECURITY_STATUS status = SEC_E_INTERNAL_ERROR;
|
SECURITY_STATUS status = SEC_E_INTERNAL_ERROR;
|
||||||
WinPrAsn1Decoder dec = { .encoding = WINPR_ASN1_BER, { 0 } };
|
WinPrAsn1Decoder dec = WinPrAsn1Decoder_init();
|
||||||
WinPrAsn1Decoder dec2 = { .encoding = WINPR_ASN1_BER, { 0 } };
|
WinPrAsn1Decoder dec2 = WinPrAsn1Decoder_init();
|
||||||
WinPrAsn1_tagId tag = 0;
|
WinPrAsn1_tagId tag = 0;
|
||||||
WinPrAsn1_OID oid = WINPR_C_ARRAY_INIT;
|
WinPrAsn1_OID oid = WINPR_C_ARRAY_INIT;
|
||||||
const Mech* first_mech = NULL;
|
const Mech* first_mech = NULL;
|
||||||
|
|||||||
@@ -86,8 +86,8 @@ cleanup:
|
|||||||
BOOL sspi_gss_unwrap_token(const SecBuffer* buf, WinPrAsn1_OID* oid, uint16_t* tok_id,
|
BOOL sspi_gss_unwrap_token(const SecBuffer* buf, WinPrAsn1_OID* oid, uint16_t* tok_id,
|
||||||
sspi_gss_data* token)
|
sspi_gss_data* token)
|
||||||
{
|
{
|
||||||
WinPrAsn1Decoder dec = { .encoding = WINPR_ASN1_BER, { 0 } };
|
WinPrAsn1Decoder dec = WinPrAsn1Decoder_init();
|
||||||
WinPrAsn1Decoder dec2 = { .encoding = WINPR_ASN1_BER, { 0 } };
|
WinPrAsn1Decoder dec2 = WinPrAsn1Decoder_init();
|
||||||
WinPrAsn1_tagId tag = 0;
|
WinPrAsn1_tagId tag = 0;
|
||||||
wStream sbuffer = WINPR_C_ARRAY_INIT;
|
wStream sbuffer = WINPR_C_ARRAY_INIT;
|
||||||
wStream* s = NULL;
|
wStream* s = NULL;
|
||||||
|
|||||||
@@ -1388,7 +1388,7 @@ size_t WinPrAsn1DecReadContextualBool(WinPrAsn1Decoder* dec, WinPrAsn1_tagId tag
|
|||||||
{
|
{
|
||||||
size_t ret = 0;
|
size_t ret = 0;
|
||||||
size_t ret2 = 0;
|
size_t ret2 = 0;
|
||||||
WinPrAsn1Decoder content = { .encoding = WINPR_ASN1_BER, { 0 } };
|
WinPrAsn1Decoder content = WinPrAsn1Decoder_init();
|
||||||
|
|
||||||
ret = readContextualHeader(dec, tagId, error, &content);
|
ret = readContextualHeader(dec, tagId, error, &content);
|
||||||
if (!ret)
|
if (!ret)
|
||||||
@@ -1410,7 +1410,7 @@ size_t WinPrAsn1DecReadContextualInteger(WinPrAsn1Decoder* dec, WinPrAsn1_tagId
|
|||||||
{
|
{
|
||||||
size_t ret = 0;
|
size_t ret = 0;
|
||||||
size_t ret2 = 0;
|
size_t ret2 = 0;
|
||||||
WinPrAsn1Decoder content = { .encoding = WINPR_ASN1_BER, { 0 } };
|
WinPrAsn1Decoder content = WinPrAsn1Decoder_init();
|
||||||
|
|
||||||
ret = readContextualHeader(dec, tagId, error, &content);
|
ret = readContextualHeader(dec, tagId, error, &content);
|
||||||
if (!ret)
|
if (!ret)
|
||||||
@@ -1432,7 +1432,7 @@ size_t WinPrAsn1DecReadContextualOID(WinPrAsn1Decoder* dec, WinPrAsn1_tagId tagI
|
|||||||
{
|
{
|
||||||
size_t ret = 0;
|
size_t ret = 0;
|
||||||
size_t ret2 = 0;
|
size_t ret2 = 0;
|
||||||
WinPrAsn1Decoder content = { .encoding = WINPR_ASN1_BER, { 0 } };
|
WinPrAsn1Decoder content = WinPrAsn1Decoder_init();
|
||||||
|
|
||||||
ret = readContextualHeader(dec, tagId, error, &content);
|
ret = readContextualHeader(dec, tagId, error, &content);
|
||||||
if (!ret)
|
if (!ret)
|
||||||
@@ -1455,7 +1455,7 @@ size_t WinPrAsn1DecReadContextualOctetString(WinPrAsn1Decoder* dec, WinPrAsn1_ta
|
|||||||
{
|
{
|
||||||
size_t ret = 0;
|
size_t ret = 0;
|
||||||
size_t ret2 = 0;
|
size_t ret2 = 0;
|
||||||
WinPrAsn1Decoder content = { .encoding = WINPR_ASN1_BER, { 0 } };
|
WinPrAsn1Decoder content = WinPrAsn1Decoder_init();
|
||||||
|
|
||||||
ret = readContextualHeader(dec, tagId, error, &content);
|
ret = readContextualHeader(dec, tagId, error, &content);
|
||||||
if (!ret)
|
if (!ret)
|
||||||
@@ -1477,7 +1477,7 @@ size_t WinPrAsn1DecReadContextualSequence(WinPrAsn1Decoder* dec, WinPrAsn1_tagId
|
|||||||
{
|
{
|
||||||
size_t ret = 0;
|
size_t ret = 0;
|
||||||
size_t ret2 = 0;
|
size_t ret2 = 0;
|
||||||
WinPrAsn1Decoder content = { .encoding = WINPR_ASN1_BER, { 0 } };
|
WinPrAsn1Decoder content = WinPrAsn1Decoder_init();
|
||||||
|
|
||||||
ret = readContextualHeader(dec, tagId, error, &content);
|
ret = readContextualHeader(dec, tagId, error, &content);
|
||||||
if (!ret)
|
if (!ret)
|
||||||
|
|||||||
@@ -30,8 +30,8 @@ static const BYTE utctimeContent[] = { 0x17, 0x0D, 0x32, 0x31, 0x30, 0x33, 0x31,
|
|||||||
|
|
||||||
int TestASN1Read(int argc, char* argv[])
|
int TestASN1Read(int argc, char* argv[])
|
||||||
{
|
{
|
||||||
WinPrAsn1Decoder decoder = { .encoding = WINPR_ASN1_BER, { 0 } };
|
WinPrAsn1Decoder decoder = WinPrAsn1Decoder_init();
|
||||||
WinPrAsn1Decoder seqDecoder = { .encoding = WINPR_ASN1_BER, { 0 } };
|
WinPrAsn1Decoder seqDecoder = WinPrAsn1Decoder_init();
|
||||||
wStream staticS = WINPR_C_ARRAY_INIT;
|
wStream staticS = WINPR_C_ARRAY_INIT;
|
||||||
WinPrAsn1_BOOL boolV = 0;
|
WinPrAsn1_BOOL boolV = 0;
|
||||||
WinPrAsn1_INTEGER integerV = 0;
|
WinPrAsn1_INTEGER integerV = 0;
|
||||||
|
|||||||
Reference in New Issue
Block a user