Esempio n. 1
0
LPBYTE Base16::makeBase (const LPBYTE a, const size_t aLen)
{
	const size_t	ulTotal=(aLen * 2) + 2;
	LPBYTE ret=new BYTE[ulTotal];
	if (ret == NULL)
		return NULL;

	memset(ret, 0, ulTotal);	// The last are null terminators

	const size_t	xLen=byte_array_to_hex_string(a, aLen, (char *) ret, (ulTotal+1), '\0');
	return ret;
}
Esempio n. 2
0
bool encode_request(const uint8_t *req, uint32_t req_len, uint8_t *out_buf, uint32_t *out_len)
{
    uint32_t encoded_header_size = static_cast<uint32_t>(2*PROVISION_REQUEST_HEADER_SIZE);
    if(*out_len<encoded_header_size)
        return false;
    if(req_len<PROVISION_REQUEST_HEADER_SIZE)
        return false;
    if(!byte_array_to_hex_string(req, PROVISION_REQUEST_HEADER_SIZE, out_buf, encoded_header_size))
        return false;
    uint32_t left_size = *out_len - encoded_header_size;
    if(req_len != GET_SIZE_FROM_PROVISION_REQUEST(req))
        return false;//error in input message
    if(!base_64_encode(req+PROVISION_REQUEST_HEADER_SIZE, GET_BODY_SIZE_FROM_PROVISION_REQUEST(req), out_buf + encoded_header_size, &left_size))
        return false;
    *out_len = left_size + encoded_header_size;
    return true;
}