asn1c/skeletons/OCTET_STRING.h

52 lines
1.8 KiB
C

/*-
* Copyright (c) 2003 Lev Walkin <vlm@lionet.info>. All rights reserved.
* Redistribution and modifications are permitted subject to BSD license.
*/
#ifndef _OCTET_STRING_H_
#define _OCTET_STRING_H_
#include <constr_TYPE.h>
typedef struct OCTET_STRING {
uint8_t *buf; /* Buffer with consecutive OCTET_STRING bits */
int size; /* Size of the buffer */
ber_dec_ctx_t _ber_dec_ctx; /* Parsing across buffer boundaries */
} OCTET_STRING_t;
extern asn1_TYPE_descriptor_t asn1_DEF_OCTET_STRING;
ber_type_decoder_f OCTET_STRING_decode_ber;
der_type_encoder_f OCTET_STRING_encode_der;
asn_struct_print_f OCTET_STRING_print;
asn_struct_print_f OCTET_STRING_print_ascii;
asn_struct_free_f OCTET_STRING_free;
/***********************************
* Some handy conversion routines. *
***********************************/
/*
* This function clears the previous value of the OCTET STRING (if any)
* and then allocates a new memory and makes s point to the newly allocated
* memory. If size = -1, the size of the original string will be determined
* using strlen(str).
* If str equals to NULL, the function will silently clear the
* current contents of the OCTET STRING.
* Returns 0 if it was possible to perform operation, -1 otherwise.
*/
int OCTET_STRING_fromBuf(OCTET_STRING_t *s, const char *str, int size);
/*
* Allocate and fill the new OCTET STRING and return a pointer to the newly
* allocated object. NULL is permitted in str: the function will just allocate
* empty OCTET STRING.
*/
OCTET_STRING_t *OCTET_STRING_new_fromBuf(const char *str, int size);
/* Handy conversion from the C string into the OCTET STRING. */
#define OCTET_STRING_fromString(s, str) OCTET_STRING_fromBuf(s, str, -1);
#define OCTET_STRING_fromString(s, str) OCTET_STRING_fromBuf(s, str, -1);
#endif /* _OCTET_STRING_H_ */