]> git.stg.codes - stg.git/blobdiff - libs/smux/include/stg/OCTET_STRING.h
More std::jthread stuff.
[stg.git] / libs / smux / include / stg / OCTET_STRING.h
index 013c7b13f96c46952b92492583bdd277b0391f8b..bb06dc62d4a60eb14e30cc7aff46181111c7be6e 100644 (file)
@@ -1,5 +1,5 @@
 /*-
- * Copyright (c) 2003 Lev Walkin <vlm@lionet.info>. All rights reserved.
+ * Copyright (c) 2003-2017 Lev Walkin <vlm@lionet.info>. All rights reserved.
  * Redistribution and modifications are permitted subject to BSD license.
  */
 #ifndef        _OCTET_STRING_H_
@@ -13,16 +13,18 @@ extern "C" {
 
 typedef struct OCTET_STRING {
        uint8_t *buf;   /* Buffer with consecutive OCTET_STRING bits */
-       int size;       /* Size of the buffer */
+       size_t size;    /* Size of the buffer */
 
        asn_struct_ctx_t _asn_ctx;      /* Parsing across buffer boundaries */
 } OCTET_STRING_t;
 
 extern asn_TYPE_descriptor_t asn_DEF_OCTET_STRING;
+extern asn_TYPE_operation_t asn_OP_OCTET_STRING;
 
 asn_struct_free_f OCTET_STRING_free;
 asn_struct_print_f OCTET_STRING_print;
 asn_struct_print_f OCTET_STRING_print_utf8;
+asn_struct_compare_f OCTET_STRING_compare;
 ber_type_decoder_f OCTET_STRING_decode_ber;
 der_type_encoder_f OCTET_STRING_encode_der;
 xer_type_decoder_f OCTET_STRING_decode_xer_hex;                /* Hexadecimal */
@@ -30,8 +32,14 @@ xer_type_decoder_f OCTET_STRING_decode_xer_binary;   /* 01010111010 */
 xer_type_decoder_f OCTET_STRING_decode_xer_utf8;       /* ASCII/UTF-8 */
 xer_type_encoder_f OCTET_STRING_encode_xer;
 xer_type_encoder_f OCTET_STRING_encode_xer_utf8;
+oer_type_decoder_f OCTET_STRING_decode_oer;
+oer_type_encoder_f OCTET_STRING_encode_oer;
 per_type_decoder_f OCTET_STRING_decode_uper;
 per_type_encoder_f OCTET_STRING_encode_uper;
+asn_random_fill_f  OCTET_STRING_random_fill;
+
+#define OCTET_STRING_constraint  asn_generic_no_constraint
+#define OCTET_STRING_decode_xer  OCTET_STRING_decode_xer_hex
 
 /******************************
  * Handy conversion routines. *
@@ -56,29 +64,35 @@ int OCTET_STRING_fromBuf(OCTET_STRING_t *s, const char *str, int size);
  * allocated object. NULL is permitted in str: the function will just allocate
  * empty OCTET STRING.
  */
-OCTET_STRING_t *OCTET_STRING_new_fromBuf(asn_TYPE_descriptor_t *td,
-       const char *str, int size);
+OCTET_STRING_t *OCTET_STRING_new_fromBuf(const asn_TYPE_descriptor_t *td,
+                                         const char *str, int size);
 
 /****************************
  * Internally useful stuff. *
  ****************************/
 
-typedef const struct asn_OCTET_STRING_specifics_s {
-       /*
-        * Target structure description.
-        */
-       int struct_size;        /* Size of the structure */
-       int ctx_offset;         /* Offset of the asn_struct_ctx_t member */
-
-       enum asn_OS_Subvariant {
-               ASN_OSUBV_ANY,  /* The open type (ANY) */
-               ASN_OSUBV_BIT,  /* BIT STRING */
-               ASN_OSUBV_STR,  /* String types, not {BMP,Universal}String  */
-               ASN_OSUBV_U16,  /* 16-bit character (BMPString) */
-               ASN_OSUBV_U32   /* 32-bit character (UniversalString) */
-       } subvariant;
+typedef struct asn_OCTET_STRING_specifics_s {
+    /*
+     * Target structure description.
+     */
+    unsigned struct_size;   /* Size of the structure */
+    unsigned ctx_offset;    /* Offset of the asn_struct_ctx_t member */
+
+    enum asn_OS_Subvariant {
+        ASN_OSUBV_ANY, /* The open type (ANY) */
+        ASN_OSUBV_BIT, /* BIT STRING */
+        ASN_OSUBV_STR, /* String types, not {BMP,Universal}String  */
+        ASN_OSUBV_U16, /* 16-bit character (BMPString) */
+        ASN_OSUBV_U32  /* 32-bit character (UniversalString) */
+    } subvariant;
 } asn_OCTET_STRING_specifics_t;
 
+extern asn_OCTET_STRING_specifics_t asn_SPC_OCTET_STRING_specs;
+
+size_t OCTET_STRING_random_length_constrained(
+    const asn_TYPE_descriptor_t *, const asn_encoding_constraints_t *,
+    size_t max_length);
+
 #ifdef __cplusplus
 }
 #endif