Support for Interest and ContentObject decoding. More...
Go to the source code of this file.
Functions | |
struct ccn_buf_decoder * | ccn_buf_decoder_start (struct ccn_buf_decoder *d, const unsigned char *buf, size_t size) |
void | ccn_buf_advance (struct ccn_buf_decoder *d) |
int | ccn_buf_match_dtag (struct ccn_buf_decoder *d, enum ccn_dtag dtag) |
int | ccn_buf_match_some_dtag (struct ccn_buf_decoder *d) |
int | ccn_buf_match_some_blob (struct ccn_buf_decoder *d) |
int | ccn_buf_match_blob (struct ccn_buf_decoder *d, const unsigned char **bufp, size_t *sizep) |
int | ccn_buf_match_udata (struct ccn_buf_decoder *d, const char *s) |
int | ccn_buf_match_attr (struct ccn_buf_decoder *d, const char *s) |
void | ccn_buf_check_close (struct ccn_buf_decoder *d) |
Enter an error state if element closer not found. | |
int | ccn_buf_advance_past_element (struct ccn_buf_decoder *d) |
int | ccn_parse_required_tagged_BLOB (struct ccn_buf_decoder *d, enum ccn_dtag dtag, int minlen, int maxlen) |
int | ccn_parse_optional_tagged_BLOB (struct ccn_buf_decoder *d, enum ccn_dtag dtag, int minlen, int maxlen) |
uintmax_t | ccn_parse_required_tagged_binary_number (struct ccn_buf_decoder *d, enum ccn_dtag dtag, int minlen, int maxlen) |
uintmax_t | ccn_parse_optional_tagged_binary_number (struct ccn_buf_decoder *d, enum ccn_dtag dtag, int minlen, int maxlen, uintmax_t default_value) |
int | ccn_parse_required_tagged_UDATA (struct ccn_buf_decoder *d, enum ccn_dtag dtag) |
int | ccn_parse_optional_tagged_UDATA (struct ccn_buf_decoder *d, enum ccn_dtag dtag) |
int | ccn_parse_tagged_string (struct ccn_buf_decoder *d, enum ccn_dtag dtag, struct ccn_charbuf *store) |
Parses a ccnb-encoded element expected to contain a UDATA string. | |
int | ccn_parse_Name (struct ccn_buf_decoder *d, struct ccn_indexbuf *components) |
Parses a ccnb-encoded name. | |
int | ccn_parse_PublisherID (struct ccn_buf_decoder *d, struct ccn_parsed_interest *pi) |
static int | ccn_parse_optional_Any_or_Bloom (struct ccn_buf_decoder *d) |
int | ccn_parse_Exclude (struct ccn_buf_decoder *d) |
int | ccn_parse_nonNegativeInteger (struct ccn_buf_decoder *d) |
int | ccn_parse_uintmax (struct ccn_buf_decoder *d, uintmax_t *result) |
Parse a potentially large non-negative integer. | |
int | ccn_parse_timestamp (struct ccn_buf_decoder *d) |
int | ccn_parse_required_tagged_timestamp (struct ccn_buf_decoder *d, enum ccn_dtag dtag) |
int | ccn_parse_optional_tagged_nonNegativeInteger (struct ccn_buf_decoder *d, enum ccn_dtag dtag) |
int | ccn_fetch_tagged_nonNegativeInteger (enum ccn_dtag tt, const unsigned char *buf, size_t start, size_t stop) |
int | ccn_parse_interest (const unsigned char *msg, size_t size, struct ccn_parsed_interest *interest, struct ccn_indexbuf *components) |
static int | ccn_parse_KeyName (struct ccn_buf_decoder *d, struct parsed_KeyName *x) |
static int | ccn_parse_Signature (struct ccn_buf_decoder *d, struct ccn_parsed_ContentObject *x) |
static int | ccn_parse_SignedInfo (struct ccn_buf_decoder *d, struct ccn_parsed_ContentObject *x) |
int | ccn_parse_ContentObject (const unsigned char *msg, size_t size, struct ccn_parsed_ContentObject *x, struct ccn_indexbuf *components) |
int | ccn_ref_tagged_BLOB (enum ccn_dtag tt, const unsigned char *buf, size_t start, size_t stop, const unsigned char **presult, size_t *psize) |
static struct ccn_buf_decoder * | ccn_buf_decoder_start_at_components (struct ccn_buf_decoder *d, const unsigned char *buf, size_t buflen) |
int | ccn_content_get_value (const unsigned char *data, size_t data_size, const struct ccn_parsed_ContentObject *content, const unsigned char **value, size_t *value_size) |
int | ccn_compare_names (const unsigned char *a, size_t asize, const unsigned char *b, size_t bsize) |
Support for Interest and ContentObject decoding.
Part of the CCNx C Library.
Copyright (C) 2008, 2009, 2010 Palo Alto Research Center, Inc.
This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1 as published by the Free Software Foundation. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
Definition in file ccn_buf_decoder.c.
void ccn_buf_advance | ( | struct ccn_buf_decoder * | d | ) |
Definition at line 40 of file ccn_buf_decoder.c.
Referenced by ccn_append_link_name(), ccn_buf_advance_past_element(), ccn_buf_check_close(), ccn_buf_decoder_start_at_components(), ccn_check_namebuf(), ccn_chk_signing_params(), ccn_compare_names(), ccn_content_matches_interest(), ccn_face_instance_parse(), ccn_fetch_tagged_nonNegativeInteger(), ccn_forwarding_entry_parse(), ccn_header_parse(), ccn_name_comp_get(), ccn_name_last_component_offset(), ccn_parse_ContentObject(), ccn_parse_Exclude(), ccn_parse_interest(), ccn_parse_KeyName(), ccn_parse_Name(), ccn_parse_nonNegativeInteger(), ccn_parse_optional_Any_or_Bloom(), ccn_parse_optional_tagged_nonNegativeInteger(), ccn_parse_PublisherID(), ccn_parse_required_tagged_binary_number(), ccn_parse_required_tagged_BLOB(), ccn_parse_required_tagged_timestamp(), ccn_parse_required_tagged_UDATA(), ccn_parse_Signature(), ccn_parse_SignedInfo(), ccn_parse_tagged_required_uintmax(), ccn_parse_tagged_string(), ccn_parse_timestamp(), ccn_parse_uintmax(), ccn_pubid_matches(), ccn_ref_tagged_BLOB(), ccn_uri_append(), find_first_match_candidate(), and make_template().
int ccn_buf_advance_past_element | ( | struct ccn_buf_decoder * | d | ) |
Definition at line 119 of file ccn_buf_decoder.c.
Referenced by ccn_chk_signing_params(), ccn_uri_append(), and find_first_match_candidate().
void ccn_buf_check_close | ( | struct ccn_buf_decoder * | d | ) |
Enter an error state if element closer not found.
Definition at line 108 of file ccn_buf_decoder.c.
Referenced by ccn_append_link_name(), ccn_buf_advance_past_element(), ccn_check_namebuf(), ccn_chk_signing_params(), ccn_compare_names(), ccn_content_matches_interest(), ccn_face_instance_parse(), ccn_fetch_tagged_nonNegativeInteger(), ccn_forwarding_entry_parse(), ccn_header_parse(), ccn_name_comp_get(), ccn_name_last_component_offset(), ccn_parse_ContentObject(), ccn_parse_Exclude(), ccn_parse_interest(), ccn_parse_KeyName(), ccn_parse_Name(), ccn_parse_optional_Any_or_Bloom(), ccn_parse_optional_tagged_nonNegativeInteger(), ccn_parse_PublisherID(), ccn_parse_required_tagged_binary_number(), ccn_parse_required_tagged_BLOB(), ccn_parse_required_tagged_timestamp(), ccn_parse_required_tagged_UDATA(), ccn_parse_Signature(), ccn_parse_SignedInfo(), ccn_parse_tagged_required_uintmax(), ccn_parse_tagged_string(), ccn_ref_tagged_BLOB(), ccn_uri_append(), find_first_match_candidate(), and make_template().
struct ccn_buf_decoder* ccn_buf_decoder_start | ( | struct ccn_buf_decoder * | d, | |
const unsigned char * | buf, | |||
size_t | size | |||
) | [read] |
Definition at line 28 of file ccn_buf_decoder.c.
Referenced by ccn_append_link_name(), ccn_buf_decoder_start_at_components(), ccn_check_namebuf(), ccn_chk_signing_params(), ccn_content_matches_interest(), ccn_face_instance_parse(), ccn_fetch_tagged_nonNegativeInteger(), ccn_forwarding_entry_parse(), ccn_get_public_key(), ccn_header_parse(), ccn_interest_lifetime(), ccn_locate_key(), ccn_name_comp_get(), ccn_name_last_component_offset(), ccn_name_split(), ccn_parse_ContentObject(), ccn_parse_interest(), ccn_pubid_matches(), ccn_ref_tagged_BLOB(), ccn_uri_append(), ccnd_reg_uri(), find_first_match_candidate(), main(), make_template(), and process_incoming_link_message().
static struct ccn_buf_decoder* ccn_buf_decoder_start_at_components | ( | struct ccn_buf_decoder * | d, | |
const unsigned char * | buf, | |||
size_t | buflen | |||
) | [static, read] |
Definition at line 862 of file ccn_buf_decoder.c.
Referenced by ccn_compare_names().
int ccn_buf_match_attr | ( | struct ccn_buf_decoder * | d, | |
const char * | s | |||
) |
Definition at line 98 of file ccn_buf_decoder.c.
int ccn_buf_match_blob | ( | struct ccn_buf_decoder * | d, | |
const unsigned char ** | bufp, | |||
size_t * | sizep | |||
) |
Definition at line 70 of file ccn_buf_decoder.c.
Referenced by ccn_check_namebuf(), ccn_compare_names(), ccn_content_matches_interest(), ccn_face_instance_parse(), ccn_forwarding_entry_parse(), ccn_get_public_key(), ccn_header_parse(), ccn_name_comp_get(), ccn_name_last_component_offset(), ccn_parse_Name(), ccn_parse_required_tagged_binary_number(), ccn_ref_tagged_BLOB(), ccn_uri_append(), and make_template().
int ccn_buf_match_dtag | ( | struct ccn_buf_decoder * | d, | |
enum ccn_dtag | dtag | |||
) |
Definition at line 48 of file ccn_buf_decoder.c.
Referenced by ccn_append_link_name(), ccn_buf_decoder_start_at_components(), ccn_check_namebuf(), ccn_chk_signing_params(), ccn_compare_names(), ccn_content_matches_interest(), ccn_face_instance_parse(), ccn_fetch_tagged_nonNegativeInteger(), ccn_forwarding_entry_parse(), ccn_header_parse(), ccn_locate_key(), ccn_name_comp_get(), ccn_name_last_component_offset(), ccn_parse_ContentObject(), ccn_parse_Exclude(), ccn_parse_interest(), ccn_parse_KeyName(), ccn_parse_Name(), ccn_parse_optional_Any_or_Bloom(), ccn_parse_optional_tagged_binary_number(), ccn_parse_optional_tagged_BLOB(), ccn_parse_optional_tagged_nonNegativeInteger(), ccn_parse_optional_tagged_UDATA(), ccn_parse_PublisherID(), ccn_parse_required_tagged_binary_number(), ccn_parse_required_tagged_BLOB(), ccn_parse_required_tagged_timestamp(), ccn_parse_required_tagged_UDATA(), ccn_parse_Signature(), ccn_parse_SignedInfo(), ccn_parse_tagged_required_uintmax(), ccn_parse_tagged_string(), ccn_ref_tagged_BLOB(), ccn_uri_append(), find_first_match_candidate(), main(), and make_template().
int ccn_buf_match_some_blob | ( | struct ccn_buf_decoder * | d | ) |
Definition at line 63 of file ccn_buf_decoder.c.
Referenced by ccn_buf_match_blob(), ccn_chk_signing_params(), ccn_parse_PublisherID(), ccn_parse_required_tagged_BLOB(), and ccn_pubid_matches().
int ccn_buf_match_some_dtag | ( | struct ccn_buf_decoder * | d | ) |
Definition at line 56 of file ccn_buf_decoder.c.
int ccn_buf_match_udata | ( | struct ccn_buf_decoder * | d, | |
const char * | s | |||
) |
Definition at line 88 of file ccn_buf_decoder.c.
int ccn_compare_names | ( | const unsigned char * | a, | |
size_t | asize, | |||
const unsigned char * | b, | |||
size_t | bsize | |||
) |
Definition at line 890 of file ccn_buf_decoder.c.
Referenced by content_skiplist_findbefore(), and namecompare().
int ccn_content_get_value | ( | const unsigned char * | data, | |
size_t | data_size, | |||
const struct ccn_parsed_ContentObject * | content, | |||
const unsigned char ** | value, | |||
size_t * | value_size | |||
) |
Definition at line 877 of file ccn_buf_decoder.c.
Referenced by CallMe(), ccn_cache_key(), ccn_get_header(), ccnd_req_destroyface(), ccnd_req_newface(), ccnd_req_prefix_or_self_reg(), ccnd_req_unreg(), create_face(), decode_message(), handle_key(), handle_prefix_reg_reply(), incoming_content(), main(), process_test(), and register_unregister_prefix().
int ccn_fetch_tagged_nonNegativeInteger | ( | enum ccn_dtag | tt, | |
const unsigned char * | buf, | |||
size_t | start, | |||
size_t | stop | |||
) |
Definition at line 540 of file ccn_buf_decoder.c.
Referenced by set_content_timer().
int ccn_parse_ContentObject | ( | const unsigned char * | msg, | |
size_t | size, | |||
struct ccn_parsed_ContentObject * | x, | |||
struct ccn_indexbuf * | components | |||
) |
Definition at line 805 of file ccn_buf_decoder.c.
Referenced by ccn_content_matches_interest(), ccn_dispatch_message(), ccnd_answer_req(), ccnd_req_destroyface(), ccnd_req_newface(), ccnd_req_prefix_or_self_reg(), ccnd_req_unreg(), decode_message(), deliver_content(), interest_handler(), main(), process_incoming_content(), and process_test().
int ccn_parse_Exclude | ( | struct ccn_buf_decoder * | d | ) |
Definition at line 369 of file ccn_buf_decoder.c.
Referenced by ccn_parse_interest().
int ccn_parse_interest | ( | const unsigned char * | msg, | |
size_t | size, | |||
struct ccn_parsed_interest * | interest, | |||
struct ccn_indexbuf * | components | |||
) |
Definition at line 561 of file ccn_buf_decoder.c.
Referenced by ccn_age_interest(), ccn_construct_interest(), ccn_content_matches_interest(), ccn_dispatch_message(), ccn_parse_interest(), ccnd_debug_ccnb(), main(), and process_incoming_interest().
static int ccn_parse_KeyName | ( | struct ccn_buf_decoder * | d, | |
struct parsed_KeyName * | x | |||
) | [static] |
Definition at line 683 of file ccn_buf_decoder.c.
Referenced by ccn_parse_SignedInfo().
int ccn_parse_Name | ( | struct ccn_buf_decoder * | d, | |
struct ccn_indexbuf * | components | |||
) |
Parses a ccnb-encoded name.
d | is the decoder | |
components | may be NULL, otherwise is filled in with the Component boundary offsets |
Definition at line 289 of file ccn_buf_decoder.c.
Referenced by ccn_append_link_name(), ccn_forwarding_entry_parse(), ccn_name_split(), ccn_parse_ContentObject(), ccn_parse_interest(), ccn_parse_KeyName(), and ccnd_reg_uri().
int ccn_parse_nonNegativeInteger | ( | struct ccn_buf_decoder * | d | ) |
Definition at line 390 of file ccn_buf_decoder.c.
Referenced by ccn_fetch_tagged_nonNegativeInteger(), and ccn_parse_optional_tagged_nonNegativeInteger().
static int ccn_parse_optional_Any_or_Bloom | ( | struct ccn_buf_decoder * | d | ) | [static] |
Definition at line 352 of file ccn_buf_decoder.c.
Referenced by ccn_parse_Exclude().
uintmax_t ccn_parse_optional_tagged_binary_number | ( | struct ccn_buf_decoder * | d, | |
enum ccn_dtag | dtag, | |||
int | minlen, | |||
int | maxlen, | |||
uintmax_t | default_value | |||
) |
Definition at line 204 of file ccn_buf_decoder.c.
Referenced by ccn_interest_lifetime(), and ccn_parse_SignedInfo().
int ccn_parse_optional_tagged_BLOB | ( | struct ccn_buf_decoder * | d, | |
enum ccn_dtag | dtag, | |||
int | minlen, | |||
int | maxlen | |||
) |
Definition at line 167 of file ccn_buf_decoder.c.
Referenced by ccn_chk_signing_params(), ccn_parse_interest(), ccn_parse_optional_Any_or_Bloom(), ccn_parse_Signature(), and ccn_parse_SignedInfo().
int ccn_parse_optional_tagged_nonNegativeInteger | ( | struct ccn_buf_decoder * | d, | |
enum ccn_dtag | dtag | |||
) |
Definition at line 526 of file ccn_buf_decoder.c.
Referenced by ccn_chk_signing_params(), ccn_face_instance_parse(), ccn_forwarding_entry_parse(), ccn_parse_interest(), and ccn_parse_SignedInfo().
int ccn_parse_optional_tagged_UDATA | ( | struct ccn_buf_decoder * | d, | |
enum ccn_dtag | dtag | |||
) |
Definition at line 234 of file ccn_buf_decoder.c.
Referenced by ccn_parse_Signature().
int ccn_parse_PublisherID | ( | struct ccn_buf_decoder * | d, | |
struct ccn_parsed_interest * | pi | |||
) |
Definition at line 317 of file ccn_buf_decoder.c.
Referenced by ccn_parse_interest(), and ccn_parse_KeyName().
uintmax_t ccn_parse_required_tagged_binary_number | ( | struct ccn_buf_decoder * | d, | |
enum ccn_dtag | dtag, | |||
int | minlen, | |||
int | maxlen | |||
) |
Definition at line 176 of file ccn_buf_decoder.c.
Referenced by ccn_parse_optional_tagged_binary_number(), and process_incoming_link_message().
int ccn_parse_required_tagged_BLOB | ( | struct ccn_buf_decoder * | d, | |
enum ccn_dtag | dtag, | |||
int | minlen, | |||
int | maxlen | |||
) |
Definition at line 142 of file ccn_buf_decoder.c.
Referenced by ccn_chk_signing_params(), ccn_parse_ContentObject(), ccn_parse_Exclude(), ccn_parse_optional_tagged_BLOB(), ccn_parse_Signature(), and ccn_parse_SignedInfo().
int ccn_parse_required_tagged_timestamp | ( | struct ccn_buf_decoder * | d, | |
enum ccn_dtag | dtag | |||
) |
Definition at line 509 of file ccn_buf_decoder.c.
Referenced by ccn_parse_SignedInfo().
int ccn_parse_required_tagged_UDATA | ( | struct ccn_buf_decoder * | d, | |
enum ccn_dtag | dtag | |||
) |
Definition at line 213 of file ccn_buf_decoder.c.
Referenced by ccn_parse_optional_tagged_UDATA().
static int ccn_parse_Signature | ( | struct ccn_buf_decoder * | d, | |
struct ccn_parsed_ContentObject * | x | |||
) | [static] |
Definition at line 704 of file ccn_buf_decoder.c.
Referenced by ccn_buf_decoder_start_at_components(), and ccn_parse_ContentObject().
static int ccn_parse_SignedInfo | ( | struct ccn_buf_decoder * | d, | |
struct ccn_parsed_ContentObject * | x | |||
) | [static] |
Definition at line 735 of file ccn_buf_decoder.c.
Referenced by ccn_parse_ContentObject().
int ccn_parse_tagged_string | ( | struct ccn_buf_decoder * | d, | |
enum ccn_dtag | dtag, | |||
struct ccn_charbuf * | store | |||
) |
Parses a ccnb-encoded element expected to contain a UDATA string.
d | is the decoder | |
dtag | is the expected dtag value | |
store | - on success, the string value is appended to store, with null termination. |
Definition at line 253 of file ccn_buf_decoder.c.
Referenced by ccn_face_instance_parse(), and ccn_forwarding_entry_parse().
int ccn_parse_timestamp | ( | struct ccn_buf_decoder * | d | ) |
Definition at line 465 of file ccn_buf_decoder.c.
Referenced by ccn_parse_required_tagged_timestamp().
int ccn_parse_uintmax | ( | struct ccn_buf_decoder * | d, | |
uintmax_t * | result | |||
) |
Parse a potentially large non-negative integer.
Definition at line 430 of file ccn_buf_decoder.c.
Referenced by ccn_parse_tagged_required_uintmax().
int ccn_ref_tagged_BLOB | ( | enum ccn_dtag | tt, | |
const unsigned char * | buf, | |||
size_t | start, | |||
size_t | stop, | |||
const unsigned char ** | presult, | |||
size_t * | psize | |||
) |
Definition at line 840 of file ccn_buf_decoder.c.
Referenced by ccn_chk_signing_params(), ccn_content_get_value(), ccn_digest_Content(), ccn_initiate_key_fetch(), ccn_locate_key(), ccn_name_next_sibling(), ccn_verify_signature(), ccnd_debug_ccnb(), get_ccndid(), GetNumberFromInfo(), handle_ccndid_response(), incoming_content(), incoming_interest(), is_final(), and main().