!C99Shell v. 2.5 [PHP 8 Update] [24.05.2025]!

Software: Apache/2.4.41 (Ubuntu). PHP/8.0.30 

uname -a: Linux apirnd 5.4.0-204-generic #224-Ubuntu SMP Thu Dec 5 13:38:28 UTC 2024 x86_64 

uid=33(www-data) gid=33(www-data) groups=33(www-data) 

Safe-mode: OFF (not secure)

/netdata/externaldeps/libwebsockets/include/libwebsockets/   drwxrwxr-x
Free 13.11 GB of 57.97 GB (22.62%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     lws-jose.h (6.53 KB)      -rw-rw-r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
/*
 * libwebsockets - small server side websockets and web server implementation
 *
 * Copyright (C) 2010-2018 Andy Green <andy@warmcat.com>
 *
 *  This library is free software; you can redistribute it and/or
 *  modify it under the terms of the GNU Lesser General Public
 *  License as published by the Free Software Foundation:
 *  version 2.1 of the License.
 *
 *  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
 *
 * included from libwebsockets.h
 */

enum lws_jws_jose_hdr_indexes {
    LJJHI_ALG,    /* REQUIRED */
    LJJHI_JKU,    /* Optional: string */
    LJJHI_JWK,    /* Optional: jwk JSON object: public key: */
    LJJHI_KID,    /* Optional: string */
    LJJHI_X5U,    /* Optional: string: url of public key cert / chain */
    LJJHI_X5C,    /* Optional: base64 (NOT -url): actual cert */
    LJJHI_X5T,    /* Optional: base64url: SHA-1 of actual cert */
    LJJHI_X5T_S256, /* Optional: base64url: SHA-256 of actual cert */
    LJJHI_TYP,    /* Optional: string: media type */
    LJJHI_CTY,    /* Optional: string: content media type */
    LJJHI_CRIT,    /* Optional for send, REQUIRED: array of strings:
             * mustn't contain standardized strings or null set */

    LJJHI_RECIPS_HDR,
    LJJHI_RECIPS_HDR_ALG,
    LJJHI_RECIPS_HDR_KID,
    LJJHI_RECIPS_EKEY,

    LJJHI_ENC,    /* JWE only: Optional: string */
    LJJHI_ZIP,    /* JWE only: Optional: string ("DEF" = deflate) */

    LJJHI_EPK,    /* Additional arg for JWE ECDH:  ephemeral public key */
    LJJHI_APU,    /* Additional arg for JWE ECDH:  base64url */
    LJJHI_APV,    /* Additional arg for JWE ECDH:  base64url */
    LJJHI_IV,    /* Additional arg for JWE AES:   base64url */
    LJJHI_TAG,    /* Additional arg for JWE AES:   base64url */
    LJJHI_P2S,    /* Additional arg for JWE PBES2: base64url: salt */
    LJJHI_P2C,    /* Additional arg for JWE PBES2: integer: count */

    LWS_COUNT_JOSE_HDR_ELEMENTS
};

enum lws_jose_algtype {
    LWS_JOSE_ENCTYPE_NONE,

    LWS_JOSE_ENCTYPE_RSASSA_PKCS1_1_5,
    LWS_JOSE_ENCTYPE_RSASSA_PKCS1_OAEP,
    LWS_JOSE_ENCTYPE_RSASSA_PKCS1_PSS,

    LWS_JOSE_ENCTYPE_ECDSA,
    LWS_JOSE_ENCTYPE_ECDHES,

    LWS_JOSE_ENCTYPE_AES_CBC,
    LWS_JOSE_ENCTYPE_AES_CFB128,
    LWS_JOSE_ENCTYPE_AES_CFB8,
    LWS_JOSE_ENCTYPE_AES_CTR,
    LWS_JOSE_ENCTYPE_AES_ECB,
    LWS_JOSE_ENCTYPE_AES_OFB,
    LWS_JOSE_ENCTYPE_AES_XTS,    /* care: requires double-length key */
    LWS_JOSE_ENCTYPE_AES_GCM,
};

/* there's a table of these defined in lws-gencrypto-common.c */

struct lws_jose_jwe_alg {
    enum lws_genhash_types hash_type;
    enum lws_genhmac_types hmac_type;
    enum lws_jose_algtype algtype_signing; /* the signing cipher */
    enum lws_jose_algtype algtype_crypto; /* the encryption cipher */
    const char *alg; /* the JWA enc alg name, eg "ES512" */
    const char *curve_name; /* NULL, or, eg, "P-256" */
    unsigned short keybits_min, keybits_fixed;
    unsigned short ivbits;
};

/*
 * For JWS, "JOSE header" is defined to be the union of...
 *
 * o  JWS Protected Header
 * o  JWS Unprotected Header
 *
 * For JWE, the "JOSE header" is the union of...
 *
 * o  JWE Protected Header
 * o  JWE Shared Unprotected Header
 * o  JWE Per-Recipient Unprotected Header
 */

#define LWS_JWS_MAX_RECIPIENTS 3

struct lws_jws_recpient {
    /*
     * JOSE per-recipient unprotected header... for JWS this contains
     * protected / header / signature
     */
    struct lws_gencrypto_keyelem unprot[LWS_COUNT_JOSE_HDR_ELEMENTS];
    struct lws_jwk jwk_ephemeral;    /* recipient ephemeral key if any */
    struct lws_jwk jwk;        /* recipient "jwk" key if any */
};

struct lws_jose {
    /* JOSE protected and unprotected header elements */
    struct lws_gencrypto_keyelem e[LWS_COUNT_JOSE_HDR_ELEMENTS];

    struct lws_jws_recpient recipient[LWS_JWS_MAX_RECIPIENTS];

    /* information from the protected header part */
    const struct lws_jose_jwe_alg *alg;
    const struct lws_jose_jwe_alg *enc_alg;

    int recipients; /* count of used recipient[] entries */
};

/**
 * lws_jose_init() - prepare a struct lws_jose for use
 *
 * \param jose: the jose header struct to prepare
 */
LWS_VISIBLE LWS_EXTERN void
lws_jose_init(struct lws_jose *jose);

/**
 * lws_jose_destroy() - retire a struct lws_jose from use
 *
 * \param jose: the jose header struct to destroy
 */
LWS_VISIBLE LWS_EXTERN void
lws_jose_destroy(struct lws_jose *jose);

/**
 * lws_gencrypto_jws_alg_to_definition() - look up a jws alg name
 *
 * \param alg: the jws alg name
 * \param jose: pointer to the pointer to the info struct to set on success
 *
 * Returns 0 if *jose set, else nonzero for failure
 */
LWS_VISIBLE LWS_EXTERN int
lws_gencrypto_jws_alg_to_definition(const char *alg,
                    const struct lws_jose_jwe_alg **jose);

/**
 * lws_gencrypto_jwe_alg_to_definition() - look up a jwe alg name
 *
 * \param alg: the jwe alg name
 * \param jose: pointer to the pointer to the info struct to set on success
 *
 * Returns 0 if *jose set, else nonzero for failure
 */
LWS_VISIBLE LWS_EXTERN int
lws_gencrypto_jwe_alg_to_definition(const char *alg,
                    const struct lws_jose_jwe_alg **jose);

/**
 * lws_gencrypto_jwe_enc_to_definition() - look up a jwe enc name
 *
 * \param alg: the jwe enc name
 * \param jose: pointer to the pointer to the info struct to set on success
 *
 * Returns 0 if *jose set, else nonzero for failure
 */
LWS_VISIBLE LWS_EXTERN int
lws_gencrypto_jwe_enc_to_definition(const char *enc,
                    const struct lws_jose_jwe_alg **jose);

/**
 * lws_jws_parse_jose() - parse a JWS JOSE header
 *
 * \param jose: the jose struct to set to parsing results
 * \param buf: the raw JOSE header
 * \param len: the length of the raw JOSE header
 * \param temp: parent-owned buffer to "allocate" elements into
 * \param temp_len: amount of space available in temp
 *
 * returns the amount of temp used, or -1 for error
 */
LWS_VISIBLE LWS_EXTERN int
lws_jws_parse_jose(struct lws_jose *jose,
           const char *buf, int len, char *temp, int *temp_len);

/**
 * lws_jwe_parse_jose() - parse a JWE JOSE header
 *
 * \param jose: the jose struct to set to parsing results
 * \param buf: the raw JOSE header
 * \param len: the length of the raw JOSE header
 * \param temp: parent-owned buffer to "allocate" elements into
 * \param temp_len: amount of space available in temp
 *
 * returns the amount of temp used, or -1 for error
 */
LWS_VISIBLE LWS_EXTERN int
lws_jwe_parse_jose(struct lws_jose *jose,
           const char *buf, int len, char *temp, int *temp_len);


:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0058 ]--