23    size_t octets = (**ptr) & 0x7f;
 
   26      len = (len << 8) + (**ptr);
 
 
   38asn1_tag_c(
const uint8_t **ptr, 
int *constructed, 
int *cls) {
 
   43  *constructed = (
byte & 0x20) ? 1 : 0;
 
   53    tag = (tag << 7) + (
byte & 0x7F);
 
   58  tag = (tag << 7) + (
byte & 0x7F);
 
 
   69  const uint8_t *acp = ptr;
 
   70  uint8_t tag = 
asn1_tag_c(&acp, &constructed, &
class);
 
   74  while (tlen > 0 && len <= tlen) {
 
   75    if (
class == 2 && constructed == 1) {
 
   81      if (!validate || validate(acp, len)) {
 
   86        memcpy(tag_data->
s, acp, len);
 
   90    if (tag == 0x10 && constructed == 1) {
 
 
  109  0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x02, 0x01,
 
 
  114      0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x03, 0x01, 0x07,
 
  127  if (pub_key && prime) {
 
  134      memcpy(&spki->
s[header_size], pub_key->
s, pub_key->
length);
 
 
static const unsigned char cert_asn1_header2[]
 
static const unsigned char cert_asn1_header1[]
 
Library specific build wrapper for coap_internal.h.
 
coap_binary_t * get_asn1_tag(coap_asn1_tag_t ltag, const uint8_t *ptr, size_t tlen, asn1_validate validate)
Get the asn1 tag and data from the current ptr.
 
coap_asn1_tag_t asn1_tag_c(const uint8_t **ptr, int *constructed, int *cls)
Get the asn1 tag from the current ptr.
 
size_t asn1_len(const uint8_t **ptr)
Get the asn1 length from the current ptr.
 
coap_binary_t * get_asn1_spki(const uint8_t *data, size_t size)
Abstract SPKI public key from the ASN1.
 
int(* asn1_validate)(const uint8_t *data, size_t size)
Callback to validate the asn1 tag and data.
 
coap_binary_t * coap_new_binary(size_t size)
Returns a new binary object with at least size bytes storage allocated.
 
void coap_delete_binary(coap_binary_t *s)
Deletes the given coap_binary_t object and releases any memory allocated.
 
CoAP binary data definition.
 
size_t length
length of binary data