Copyright © 2001 - 2007 SILC Project SILC Project Website | SILC Toolkit Reference Manual Index

SILC Toolkit Reference Manual SILC Crypto Library Introduction to SILC RNG SILC RNG Interface SILC Cipher API SILC PKCS API SILC Public Key API SILC PKCS #1 API SILC Hash Interface SILC HMAC Interface SILC Core Library SILC Authentication Interface SILC Message Interface SILC Channel Interface SILC Command Interface SILC Notify Interface SILC Status Types SILC Modes SILC ID Interface SILC Argument Interface SILC Attributes Interface Packet Engine Interface SILC Public Key Payload Interface SILC Key Exchange Library SILC SKE Interface SILC Connection Authentication Interface SILC VCard Library SILC VCard Interface SILC Math Library SILC MP Interface SILC Math Interface SILC Client Library Using SILC Client Library Tutorial Arguments for command_reply Client Operation SilcStatus Error Arguments in command_reply Client Operation Arguments for notify Client Operation Unicode and UTF-8 Strings in Client Library Client Library Interface Reference Client Entry Interface Reference SILC ASN.1 Library SILC ASN.1 Interface SILC BER interface SILC HTTP Library SILC HTTP Server Interface SILC HTTP PHP Translator SILC Utility Library Basic Types and Definitions Data Buffer Interface Data Buffer Format Interface Hash Table Interface Memory Allocation Interface Data Stack (memory pool) Interface Finite State Machine Interface Thread Interface Mutual Exclusion Lock Interface Condition Variable Interface Atomic Operations Interface Network (TCP and UDP) Interface Scheduler Interface Asynchronous Operation Interface Abstract Stream Interface Socket Stream Interface File Descriptor Stream Interface File Utility Functions String Utility Interface Snprintf Interface UTF-8 String Interface Stringprep Interface Utility Functions List Interface Dynamic List Interface MIME Interface Time Utility Functions Logging Interface Config File Interface SILC Key Repository Library SILC SKR Interface SILC Application Utility Library SILC Application Utilities SILC ID Cache Interface SILC SFTP Library SILC SFTP Interface SFTP Filesystems Interface Resource Links SILC Project Website SILC Protocol Documentation SILC White Paper SILC FAQs
SilcAsn1Options NAME
        typedef enum { ... } SilcAsn1Options;
DESCRIPTION
        Options for ASN.1 encoder and decoder.  The ASN.1 options can be
        given to the SILC_ASN1_*_T macros and/or SILC_ASN1_OPTS macro.
NOTES
        The SILC_ASN1_ALLOC and SILC_ASN1_ACCUMUL flags can be given only
        with SILC_ASN1_OPTS macro.  Other options can be given with various
        SILC_ASN1_*_T macros.
EXAMPLE
        // Encodes boolean value with explicit tag and private class, and
        // the result is allocated into `dest'.
        silc_asn1_encode(asn1, &dest,
                         SILC_ASN1_OPTS(SILC_ASN1_ALLOC),
                         SILC_ASN1_BOOLEAN_T(SILC_ASN1_PRIVATE |
                                             SILC_ASN1_EXPLICIT, 100, boolval),
                         SILC_ASN1_END);
SOURCE
        typedef enum {
          /* Default. If only this is set then defaults are implied. */
          SILC_ASN1_DEFAULT      = 0x0000,

          /* Class options.  User does not need to set these unless specificly
             wanted to do so.  If SILC_ASN1_DEFAULT is set the SILC_ASN1_CONTEXT is
             implied if any of the tag options are set.  Otherwise SILC_ASN1_UNIVERSAL
             is implied. Only one of these can bet set at once. */
          SILC_ASN1_UNIVERSAL    = 0x0001,       /* Universal class (default) */
          SILC_ASN1_APP          = 0x0002,       /* Application specific class */
          SILC_ASN1_CONTEXT      = 0x0003,       /* Context specific class */
          SILC_ASN1_PRIVATE      = 0x0004,       /* Private class */

          /* Tag options (bitmask) */
          SILC_ASN1_IMPLICIT     = 0x0010,       /* Tag is implicit (default) */
          SILC_ASN1_EXPLICIT     = 0x0020,       /* Tag is explicit */
          SILC_ASN1_DEFINITE     = 0x0040,       /* Length is definite (default) */
          SILC_ASN1_INDEFINITE   = 0x0080,       /* Length is indefinite */

          /* Decoding options (bitmask) */
          SILC_ASN1_OPTIONAL     = 0x0100,       /* Zero or more may be found.  The
                                                    argument must be pointer to the
                                                    type pointer so that NULL can be
                                                    returned if type is not found. */

          /* ASN.1 encoder/decoder options (bitmask).  These can be given
             only with SILC_ASN1_OPTS macro at the start of encoding/decoding. */
          SILC_ASN1_ALLOC        = 0x0400,       /* Dynamically allocate results */
          SILC_ASN1_ACCUMUL      = 0x0800,       /* Accumulate memory for results,
                                                    next call to silc_asn1_decode
                                                    will not cancel old results. */
        } SilcAsn1Options;
ASN.1 Interface SilcAsn1 SilcAsn1Struct SilcAsn1Options SilcAsn1Tag silc_asn1_alloc silc_asn1_free silc_asn1_init silc_asn1_uninit silc_asn1_encode silc_asn1_decode SILC_ASN1_OPTS SILC_ASN1_ANY SILC_ASN1_ANY_PRIMITIVE SILC_ASN1_SEQUENCE SILC_ASN1_SET SILC_ASN1_SEQUENCE_OF SILC_ASN1_SET_OF SILC_ASN1_CHOICE SILC_ASN1_BOOLEAN SILC_ASN1_INT SILC_ASN1_SHORT_INT SILC_ASN1_ENUM SILC_ASN1_BIT_STRING SILC_ASN1_NULL SILC_ASN1_OID SILC_ASN1_OCTET_STRING SILC_ASN1_UTF8_STRING SILC_ASN1_NUMERIC_STRING SILC_ASN1_PRINTABLE_STRING SILC_ASN1_TELETEX_STRING SILC_ASN1_IA5_STRING SILC_ASN1_VISIBLE_STRING SILC_ASN1_UNIVERSAL_STRING SILC_ASN1_BMP_STRING SILC_ASN1_UNRESTRICTED_STRING SILC_ASN1_GENERAL_STRING SILC_ASN1_UTC_TIME SILC_ASN1_GEN_TIME SILC_ASN1_END

Copyright © 2001 - 2007 SILC Project SILC Project Website | SILC Toolkit Reference Manual Index