{
  "classes": [
    {
      "constants": [],
      "types": [],
      "name": "@eryx/crypto/hazmat/_crypto",
      "tags": [],
      "functions": [],
      "properties": [],
      "source": {
        "path": "",
        "line": 0
      },
      "desc": "Type facade for the optional native crypto backend.\n\nThis module keeps the typed hazmat crypto surface available to Luau\ncallers. In builds without cryptography support,\n`require(\"@eryx/crypto/hazmat/_crypto\")` fails immediately with a\nclear capability error.\n"
    },
    {
      "is_primary_export": false,
      "source": {
        "path": "",
        "line": 10
      },
      "tags": [],
      "properties": [],
      "desc": "",
      "name": "HashLib",
      "functions": [
        {
          "source": {
            "path": "",
            "line": 11
          },
          "is_method": false,
          "signature": "HashLib.md5(data: buffer) → buffer",
          "desc": "",
          "tags": [],
          "name": "md5",
          "return_str": "buffer",
          "function_type": "Function",
          "returns": [
            {
              "lua_type": "buffer",
              "desc": ""
            }
          ],
          "params": [
            {
              "lua_type": "buffer",
              "name": "data",
              "desc": ""
            }
          ]
        },
        {
          "source": {
            "path": "",
            "line": 12
          },
          "is_method": false,
          "signature": "HashLib.sha1(data: buffer) → buffer",
          "desc": "",
          "tags": [],
          "name": "sha1",
          "return_str": "buffer",
          "function_type": "Function",
          "returns": [
            {
              "lua_type": "buffer",
              "desc": ""
            }
          ],
          "params": [
            {
              "lua_type": "buffer",
              "name": "data",
              "desc": ""
            }
          ]
        },
        {
          "source": {
            "path": "",
            "line": 13
          },
          "is_method": false,
          "signature": "HashLib.sha224(data: buffer) → buffer",
          "desc": "",
          "tags": [],
          "name": "sha224",
          "return_str": "buffer",
          "function_type": "Function",
          "returns": [
            {
              "lua_type": "buffer",
              "desc": ""
            }
          ],
          "params": [
            {
              "lua_type": "buffer",
              "name": "data",
              "desc": ""
            }
          ]
        },
        {
          "source": {
            "path": "",
            "line": 14
          },
          "is_method": false,
          "signature": "HashLib.sha256(data: buffer) → buffer",
          "desc": "",
          "tags": [],
          "name": "sha256",
          "return_str": "buffer",
          "function_type": "Function",
          "returns": [
            {
              "lua_type": "buffer",
              "desc": ""
            }
          ],
          "params": [
            {
              "lua_type": "buffer",
              "name": "data",
              "desc": ""
            }
          ]
        },
        {
          "source": {
            "path": "",
            "line": 15
          },
          "is_method": false,
          "signature": "HashLib.sha384(data: buffer) → buffer",
          "desc": "",
          "tags": [],
          "name": "sha384",
          "return_str": "buffer",
          "function_type": "Function",
          "returns": [
            {
              "lua_type": "buffer",
              "desc": ""
            }
          ],
          "params": [
            {
              "lua_type": "buffer",
              "name": "data",
              "desc": ""
            }
          ]
        },
        {
          "source": {
            "path": "",
            "line": 16
          },
          "is_method": false,
          "signature": "HashLib.sha512(data: buffer) → buffer",
          "desc": "",
          "tags": [],
          "name": "sha512",
          "return_str": "buffer",
          "function_type": "Function",
          "returns": [
            {
              "lua_type": "buffer",
              "desc": ""
            }
          ],
          "params": [
            {
              "lua_type": "buffer",
              "name": "data",
              "desc": ""
            }
          ]
        },
        {
          "source": {
            "path": "",
            "line": 17
          },
          "is_method": false,
          "signature": "HashLib.sha3_224(data: buffer) → buffer",
          "desc": "",
          "tags": [],
          "name": "sha3_224",
          "return_str": "buffer",
          "function_type": "Function",
          "returns": [
            {
              "lua_type": "buffer",
              "desc": ""
            }
          ],
          "params": [
            {
              "lua_type": "buffer",
              "name": "data",
              "desc": ""
            }
          ]
        },
        {
          "source": {
            "path": "",
            "line": 18
          },
          "is_method": false,
          "signature": "HashLib.sha3_256(data: buffer) → buffer",
          "desc": "",
          "tags": [],
          "name": "sha3_256",
          "return_str": "buffer",
          "function_type": "Function",
          "returns": [
            {
              "lua_type": "buffer",
              "desc": ""
            }
          ],
          "params": [
            {
              "lua_type": "buffer",
              "name": "data",
              "desc": ""
            }
          ]
        },
        {
          "source": {
            "path": "",
            "line": 19
          },
          "is_method": false,
          "signature": "HashLib.sha3_384(data: buffer) → buffer",
          "desc": "",
          "tags": [],
          "name": "sha3_384",
          "return_str": "buffer",
          "function_type": "Function",
          "returns": [
            {
              "lua_type": "buffer",
              "desc": ""
            }
          ],
          "params": [
            {
              "lua_type": "buffer",
              "name": "data",
              "desc": ""
            }
          ]
        },
        {
          "source": {
            "path": "",
            "line": 20
          },
          "is_method": false,
          "signature": "HashLib.sha3_512(data: buffer) → buffer",
          "desc": "",
          "tags": [],
          "name": "sha3_512",
          "return_str": "buffer",
          "function_type": "Function",
          "returns": [
            {
              "lua_type": "buffer",
              "desc": ""
            }
          ],
          "params": [
            {
              "lua_type": "buffer",
              "name": "data",
              "desc": ""
            }
          ]
        }
      ],
      "metamethods": [],
      "types": []
    },
    {
      "is_primary_export": false,
      "source": {
        "path": "",
        "line": 23
      },
      "tags": [],
      "properties": [],
      "desc": "",
      "name": "HmacLib",
      "functions": [
        {
          "source": {
            "path": "",
            "line": 24
          },
          "is_method": false,
          "signature": "HmacLib.md5(key: buffer, data: buffer) → buffer",
          "desc": "",
          "tags": [],
          "name": "md5",
          "return_str": "buffer",
          "function_type": "Function",
          "returns": [
            {
              "lua_type": "buffer",
              "desc": ""
            }
          ],
          "params": [
            {
              "lua_type": "buffer",
              "name": "key",
              "desc": ""
            },
            {
              "lua_type": "buffer",
              "name": "data",
              "desc": ""
            }
          ]
        },
        {
          "source": {
            "path": "",
            "line": 25
          },
          "is_method": false,
          "signature": "HmacLib.sha1(key: buffer, data: buffer) → buffer",
          "desc": "",
          "tags": [],
          "name": "sha1",
          "return_str": "buffer",
          "function_type": "Function",
          "returns": [
            {
              "lua_type": "buffer",
              "desc": ""
            }
          ],
          "params": [
            {
              "lua_type": "buffer",
              "name": "key",
              "desc": ""
            },
            {
              "lua_type": "buffer",
              "name": "data",
              "desc": ""
            }
          ]
        },
        {
          "source": {
            "path": "",
            "line": 26
          },
          "is_method": false,
          "signature": "HmacLib.sha224(key: buffer, data: buffer) → buffer",
          "desc": "",
          "tags": [],
          "name": "sha224",
          "return_str": "buffer",
          "function_type": "Function",
          "returns": [
            {
              "lua_type": "buffer",
              "desc": ""
            }
          ],
          "params": [
            {
              "lua_type": "buffer",
              "name": "key",
              "desc": ""
            },
            {
              "lua_type": "buffer",
              "name": "data",
              "desc": ""
            }
          ]
        },
        {
          "source": {
            "path": "",
            "line": 27
          },
          "is_method": false,
          "signature": "HmacLib.sha256(key: buffer, data: buffer) → buffer",
          "desc": "",
          "tags": [],
          "name": "sha256",
          "return_str": "buffer",
          "function_type": "Function",
          "returns": [
            {
              "lua_type": "buffer",
              "desc": ""
            }
          ],
          "params": [
            {
              "lua_type": "buffer",
              "name": "key",
              "desc": ""
            },
            {
              "lua_type": "buffer",
              "name": "data",
              "desc": ""
            }
          ]
        },
        {
          "source": {
            "path": "",
            "line": 28
          },
          "is_method": false,
          "signature": "HmacLib.sha384(key: buffer, data: buffer) → buffer",
          "desc": "",
          "tags": [],
          "name": "sha384",
          "return_str": "buffer",
          "function_type": "Function",
          "returns": [
            {
              "lua_type": "buffer",
              "desc": ""
            }
          ],
          "params": [
            {
              "lua_type": "buffer",
              "name": "key",
              "desc": ""
            },
            {
              "lua_type": "buffer",
              "name": "data",
              "desc": ""
            }
          ]
        },
        {
          "source": {
            "path": "",
            "line": 29
          },
          "is_method": false,
          "signature": "HmacLib.sha512(key: buffer, data: buffer) → buffer",
          "desc": "",
          "tags": [],
          "name": "sha512",
          "return_str": "buffer",
          "function_type": "Function",
          "returns": [
            {
              "lua_type": "buffer",
              "desc": ""
            }
          ],
          "params": [
            {
              "lua_type": "buffer",
              "name": "key",
              "desc": ""
            },
            {
              "lua_type": "buffer",
              "name": "data",
              "desc": ""
            }
          ]
        },
        {
          "source": {
            "path": "",
            "line": 30
          },
          "is_method": false,
          "signature": "HmacLib.sha3_224(key: buffer, data: buffer) → buffer",
          "desc": "",
          "tags": [],
          "name": "sha3_224",
          "return_str": "buffer",
          "function_type": "Function",
          "returns": [
            {
              "lua_type": "buffer",
              "desc": ""
            }
          ],
          "params": [
            {
              "lua_type": "buffer",
              "name": "key",
              "desc": ""
            },
            {
              "lua_type": "buffer",
              "name": "data",
              "desc": ""
            }
          ]
        },
        {
          "source": {
            "path": "",
            "line": 31
          },
          "is_method": false,
          "signature": "HmacLib.sha3_256(key: buffer, data: buffer) → buffer",
          "desc": "",
          "tags": [],
          "name": "sha3_256",
          "return_str": "buffer",
          "function_type": "Function",
          "returns": [
            {
              "lua_type": "buffer",
              "desc": ""
            }
          ],
          "params": [
            {
              "lua_type": "buffer",
              "name": "key",
              "desc": ""
            },
            {
              "lua_type": "buffer",
              "name": "data",
              "desc": ""
            }
          ]
        },
        {
          "source": {
            "path": "",
            "line": 32
          },
          "is_method": false,
          "signature": "HmacLib.sha3_384(key: buffer, data: buffer) → buffer",
          "desc": "",
          "tags": [],
          "name": "sha3_384",
          "return_str": "buffer",
          "function_type": "Function",
          "returns": [
            {
              "lua_type": "buffer",
              "desc": ""
            }
          ],
          "params": [
            {
              "lua_type": "buffer",
              "name": "key",
              "desc": ""
            },
            {
              "lua_type": "buffer",
              "name": "data",
              "desc": ""
            }
          ]
        },
        {
          "source": {
            "path": "",
            "line": 33
          },
          "is_method": false,
          "signature": "HmacLib.sha3_512(key: buffer, data: buffer) → buffer",
          "desc": "",
          "tags": [],
          "name": "sha3_512",
          "return_str": "buffer",
          "function_type": "Function",
          "returns": [
            {
              "lua_type": "buffer",
              "desc": ""
            }
          ],
          "params": [
            {
              "lua_type": "buffer",
              "name": "key",
              "desc": ""
            },
            {
              "lua_type": "buffer",
              "name": "data",
              "desc": ""
            }
          ]
        }
      ],
      "metamethods": [],
      "types": []
    },
    {
      "is_primary_export": false,
      "source": {
        "path": "",
        "line": 37
      },
      "tags": [],
      "properties": [],
      "desc": "Symmetric cipher: key, iv, data -> ciphertext (CBC uses PKCS7 padding)",
      "name": "CipherLib",
      "functions": [
        {
          "source": {
            "path": "",
            "line": 38
          },
          "is_method": false,
          "signature": "CipherLib.ecb_encrypt(key: buffer, data: buffer) → buffer",
          "desc": "",
          "tags": [],
          "name": "ecb_encrypt",
          "return_str": "buffer",
          "function_type": "Function",
          "returns": [
            {
              "lua_type": "buffer",
              "desc": ""
            }
          ],
          "params": [
            {
              "lua_type": "buffer",
              "name": "key",
              "desc": ""
            },
            {
              "lua_type": "buffer",
              "name": "data",
              "desc": ""
            }
          ]
        },
        {
          "source": {
            "path": "",
            "line": 39
          },
          "is_method": false,
          "signature": "CipherLib.ecb_decrypt(key: buffer, data: buffer) → buffer",
          "desc": "",
          "tags": [],
          "name": "ecb_decrypt",
          "return_str": "buffer",
          "function_type": "Function",
          "returns": [
            {
              "lua_type": "buffer",
              "desc": ""
            }
          ],
          "params": [
            {
              "lua_type": "buffer",
              "name": "key",
              "desc": ""
            },
            {
              "lua_type": "buffer",
              "name": "data",
              "desc": ""
            }
          ]
        },
        {
          "source": {
            "path": "",
            "line": 40
          },
          "is_method": false,
          "signature": "CipherLib.cbc_encrypt(key: buffer, iv: buffer, data: buffer) → buffer",
          "desc": "",
          "tags": [],
          "name": "cbc_encrypt",
          "return_str": "buffer",
          "function_type": "Function",
          "returns": [
            {
              "lua_type": "buffer",
              "desc": ""
            }
          ],
          "params": [
            {
              "lua_type": "buffer",
              "name": "key",
              "desc": ""
            },
            {
              "lua_type": "buffer",
              "name": "iv",
              "desc": ""
            },
            {
              "lua_type": "buffer",
              "name": "data",
              "desc": ""
            }
          ]
        },
        {
          "source": {
            "path": "",
            "line": 41
          },
          "is_method": false,
          "signature": "CipherLib.cbc_decrypt(key: buffer, iv: buffer, data: buffer) → buffer",
          "desc": "",
          "tags": [],
          "name": "cbc_decrypt",
          "return_str": "buffer",
          "function_type": "Function",
          "returns": [
            {
              "lua_type": "buffer",
              "desc": ""
            }
          ],
          "params": [
            {
              "lua_type": "buffer",
              "name": "key",
              "desc": ""
            },
            {
              "lua_type": "buffer",
              "name": "iv",
              "desc": ""
            },
            {
              "lua_type": "buffer",
              "name": "data",
              "desc": ""
            }
          ]
        },
        {
          "source": {
            "path": "",
            "line": 42
          },
          "is_method": false,
          "signature": "CipherLib.ctr_encrypt(key: buffer, iv: buffer, data: buffer) → buffer",
          "desc": "",
          "tags": [],
          "name": "ctr_encrypt",
          "return_str": "buffer",
          "function_type": "Function",
          "returns": [
            {
              "lua_type": "buffer",
              "desc": ""
            }
          ],
          "params": [
            {
              "lua_type": "buffer",
              "name": "key",
              "desc": ""
            },
            {
              "lua_type": "buffer",
              "name": "iv",
              "desc": ""
            },
            {
              "lua_type": "buffer",
              "name": "data",
              "desc": ""
            }
          ]
        },
        {
          "source": {
            "path": "",
            "line": 43
          },
          "is_method": false,
          "signature": "CipherLib.ctr_decrypt(key: buffer, iv: buffer, data: buffer) → buffer",
          "desc": "",
          "tags": [],
          "name": "ctr_decrypt",
          "return_str": "buffer",
          "function_type": "Function",
          "returns": [
            {
              "lua_type": "buffer",
              "desc": ""
            }
          ],
          "params": [
            {
              "lua_type": "buffer",
              "name": "key",
              "desc": ""
            },
            {
              "lua_type": "buffer",
              "name": "iv",
              "desc": ""
            },
            {
              "lua_type": "buffer",
              "name": "data",
              "desc": ""
            }
          ]
        },
        {
          "source": {
            "path": "",
            "line": 44
          },
          "is_method": false,
          "signature": "CipherLib.gcm_encrypt(key: buffer, nonce: buffer, data: buffer, aad: buffer?) → (buffer, buffer)",
          "desc": "",
          "tags": [],
          "name": "gcm_encrypt",
          "return_str": "(buffer, buffer)",
          "function_type": "Function",
          "returns": [
            {
              "lua_type": "buffer",
              "desc": ""
            },
            {
              "lua_type": "buffer",
              "desc": ""
            }
          ],
          "params": [
            {
              "lua_type": "buffer",
              "name": "key",
              "desc": ""
            },
            {
              "lua_type": "buffer",
              "name": "nonce",
              "desc": ""
            },
            {
              "lua_type": "buffer",
              "name": "data",
              "desc": ""
            },
            {
              "lua_type": "buffer?",
              "name": "aad",
              "desc": ""
            }
          ]
        },
        {
          "source": {
            "path": "",
            "line": 45
          },
          "is_method": false,
          "signature": "CipherLib.gcm_decrypt(key: buffer, nonce: buffer, ct: buffer, tag: buffer, aad: buffer?) → buffer",
          "desc": "",
          "tags": [],
          "name": "gcm_decrypt",
          "return_str": "buffer",
          "function_type": "Function",
          "returns": [
            {
              "lua_type": "buffer",
              "desc": ""
            }
          ],
          "params": [
            {
              "lua_type": "buffer",
              "name": "key",
              "desc": ""
            },
            {
              "lua_type": "buffer",
              "name": "nonce",
              "desc": ""
            },
            {
              "lua_type": "buffer",
              "name": "ct",
              "desc": ""
            },
            {
              "lua_type": "buffer",
              "name": "tag",
              "desc": ""
            },
            {
              "lua_type": "buffer?",
              "name": "aad",
              "desc": ""
            }
          ]
        },
        {
          "source": {
            "path": "",
            "line": 46
          },
          "is_method": false,
          "signature": "CipherLib.ccm_encrypt(key: buffer, nonce: buffer, data: buffer, aad: buffer?) → (buffer, buffer)",
          "desc": "",
          "tags": [],
          "name": "ccm_encrypt",
          "return_str": "(buffer, buffer)",
          "function_type": "Function",
          "returns": [
            {
              "lua_type": "buffer",
              "desc": ""
            },
            {
              "lua_type": "buffer",
              "desc": ""
            }
          ],
          "params": [
            {
              "lua_type": "buffer",
              "name": "key",
              "desc": ""
            },
            {
              "lua_type": "buffer",
              "name": "nonce",
              "desc": ""
            },
            {
              "lua_type": "buffer",
              "name": "data",
              "desc": ""
            },
            {
              "lua_type": "buffer?",
              "name": "aad",
              "desc": ""
            }
          ]
        },
        {
          "source": {
            "path": "",
            "line": 47
          },
          "is_method": false,
          "signature": "CipherLib.ccm_decrypt(key: buffer, nonce: buffer, ct: buffer, tag: buffer, aad: buffer?) → buffer",
          "desc": "",
          "tags": [],
          "name": "ccm_decrypt",
          "return_str": "buffer",
          "function_type": "Function",
          "returns": [
            {
              "lua_type": "buffer",
              "desc": ""
            }
          ],
          "params": [
            {
              "lua_type": "buffer",
              "name": "key",
              "desc": ""
            },
            {
              "lua_type": "buffer",
              "name": "nonce",
              "desc": ""
            },
            {
              "lua_type": "buffer",
              "name": "ct",
              "desc": ""
            },
            {
              "lua_type": "buffer",
              "name": "tag",
              "desc": ""
            },
            {
              "lua_type": "buffer?",
              "name": "aad",
              "desc": ""
            }
          ]
        }
      ],
      "metamethods": [],
      "types": []
    },
    {
      "is_primary_export": false,
      "source": {
        "path": "",
        "line": 50
      },
      "tags": [],
      "properties": [],
      "desc": "",
      "name": "CamelliaLib",
      "functions": [
        {
          "source": {
            "path": "",
            "line": 51
          },
          "is_method": false,
          "signature": "CamelliaLib.cbc_encrypt(key: buffer, iv: buffer, data: buffer) → buffer",
          "desc": "",
          "tags": [],
          "name": "cbc_encrypt",
          "return_str": "buffer",
          "function_type": "Function",
          "returns": [
            {
              "lua_type": "buffer",
              "desc": ""
            }
          ],
          "params": [
            {
              "lua_type": "buffer",
              "name": "key",
              "desc": ""
            },
            {
              "lua_type": "buffer",
              "name": "iv",
              "desc": ""
            },
            {
              "lua_type": "buffer",
              "name": "data",
              "desc": ""
            }
          ]
        },
        {
          "source": {
            "path": "",
            "line": 52
          },
          "is_method": false,
          "signature": "CamelliaLib.cbc_decrypt(key: buffer, iv: buffer, data: buffer) → buffer",
          "desc": "",
          "tags": [],
          "name": "cbc_decrypt",
          "return_str": "buffer",
          "function_type": "Function",
          "returns": [
            {
              "lua_type": "buffer",
              "desc": ""
            }
          ],
          "params": [
            {
              "lua_type": "buffer",
              "name": "key",
              "desc": ""
            },
            {
              "lua_type": "buffer",
              "name": "iv",
              "desc": ""
            },
            {
              "lua_type": "buffer",
              "name": "data",
              "desc": ""
            }
          ]
        },
        {
          "source": {
            "path": "",
            "line": 53
          },
          "is_method": false,
          "signature": "CamelliaLib.ctr_encrypt(key: buffer, iv: buffer, data: buffer) → buffer",
          "desc": "",
          "tags": [],
          "name": "ctr_encrypt",
          "return_str": "buffer",
          "function_type": "Function",
          "returns": [
            {
              "lua_type": "buffer",
              "desc": ""
            }
          ],
          "params": [
            {
              "lua_type": "buffer",
              "name": "key",
              "desc": ""
            },
            {
              "lua_type": "buffer",
              "name": "iv",
              "desc": ""
            },
            {
              "lua_type": "buffer",
              "name": "data",
              "desc": ""
            }
          ]
        },
        {
          "source": {
            "path": "",
            "line": 54
          },
          "is_method": false,
          "signature": "CamelliaLib.ctr_decrypt(key: buffer, iv: buffer, data: buffer) → buffer",
          "desc": "",
          "tags": [],
          "name": "ctr_decrypt",
          "return_str": "buffer",
          "function_type": "Function",
          "returns": [
            {
              "lua_type": "buffer",
              "desc": ""
            }
          ],
          "params": [
            {
              "lua_type": "buffer",
              "name": "key",
              "desc": ""
            },
            {
              "lua_type": "buffer",
              "name": "iv",
              "desc": ""
            },
            {
              "lua_type": "buffer",
              "name": "data",
              "desc": ""
            }
          ]
        },
        {
          "source": {
            "path": "",
            "line": 55
          },
          "is_method": false,
          "signature": "CamelliaLib.gcm_encrypt(key: buffer, nonce: buffer, data: buffer, aad: buffer?) → (buffer, buffer)",
          "desc": "",
          "tags": [],
          "name": "gcm_encrypt",
          "return_str": "(buffer, buffer)",
          "function_type": "Function",
          "returns": [
            {
              "lua_type": "buffer",
              "desc": ""
            },
            {
              "lua_type": "buffer",
              "desc": ""
            }
          ],
          "params": [
            {
              "lua_type": "buffer",
              "name": "key",
              "desc": ""
            },
            {
              "lua_type": "buffer",
              "name": "nonce",
              "desc": ""
            },
            {
              "lua_type": "buffer",
              "name": "data",
              "desc": ""
            },
            {
              "lua_type": "buffer?",
              "name": "aad",
              "desc": ""
            }
          ]
        },
        {
          "source": {
            "path": "",
            "line": 56
          },
          "is_method": false,
          "signature": "CamelliaLib.gcm_decrypt(key: buffer, nonce: buffer, ct: buffer, tag: buffer, aad: buffer?) → buffer",
          "desc": "",
          "tags": [],
          "name": "gcm_decrypt",
          "return_str": "buffer",
          "function_type": "Function",
          "returns": [
            {
              "lua_type": "buffer",
              "desc": ""
            }
          ],
          "params": [
            {
              "lua_type": "buffer",
              "name": "key",
              "desc": ""
            },
            {
              "lua_type": "buffer",
              "name": "nonce",
              "desc": ""
            },
            {
              "lua_type": "buffer",
              "name": "ct",
              "desc": ""
            },
            {
              "lua_type": "buffer",
              "name": "tag",
              "desc": ""
            },
            {
              "lua_type": "buffer?",
              "name": "aad",
              "desc": ""
            }
          ]
        }
      ],
      "metamethods": [],
      "types": []
    },
    {
      "is_primary_export": false,
      "source": {
        "path": "",
        "line": 60
      },
      "tags": [],
      "properties": [],
      "desc": "3DES only; key must be 24 bytes",
      "name": "DesLib",
      "functions": [
        {
          "source": {
            "path": "",
            "line": 61
          },
          "is_method": false,
          "signature": "DesLib.cbc_encrypt(key: buffer, iv: buffer, data: buffer) → buffer",
          "desc": "",
          "tags": [],
          "name": "cbc_encrypt",
          "return_str": "buffer",
          "function_type": "Function",
          "returns": [
            {
              "lua_type": "buffer",
              "desc": ""
            }
          ],
          "params": [
            {
              "lua_type": "buffer",
              "name": "key",
              "desc": ""
            },
            {
              "lua_type": "buffer",
              "name": "iv",
              "desc": ""
            },
            {
              "lua_type": "buffer",
              "name": "data",
              "desc": ""
            }
          ]
        },
        {
          "source": {
            "path": "",
            "line": 62
          },
          "is_method": false,
          "signature": "DesLib.cbc_decrypt(key: buffer, iv: buffer, data: buffer) → buffer",
          "desc": "",
          "tags": [],
          "name": "cbc_decrypt",
          "return_str": "buffer",
          "function_type": "Function",
          "returns": [
            {
              "lua_type": "buffer",
              "desc": ""
            }
          ],
          "params": [
            {
              "lua_type": "buffer",
              "name": "key",
              "desc": ""
            },
            {
              "lua_type": "buffer",
              "name": "iv",
              "desc": ""
            },
            {
              "lua_type": "buffer",
              "name": "data",
              "desc": ""
            }
          ]
        }
      ],
      "metamethods": [],
      "types": []
    },
    {
      "is_primary_export": false,
      "source": {
        "path": "",
        "line": 65
      },
      "tags": [],
      "properties": [],
      "desc": "",
      "name": "ChaCha20Lib",
      "functions": [
        {
          "source": {
            "path": "",
            "line": 66
          },
          "is_method": false,
          "signature": "ChaCha20Lib.encrypt(key: buffer, nonce: buffer, data: buffer) → buffer",
          "desc": "",
          "tags": [],
          "name": "encrypt",
          "return_str": "buffer",
          "function_type": "Function",
          "returns": [
            {
              "lua_type": "buffer",
              "desc": ""
            }
          ],
          "params": [
            {
              "lua_type": "buffer",
              "name": "key",
              "desc": ""
            },
            {
              "lua_type": "buffer",
              "name": "nonce",
              "desc": ""
            },
            {
              "lua_type": "buffer",
              "name": "data",
              "desc": ""
            }
          ]
        },
        {
          "source": {
            "path": "",
            "line": 67
          },
          "is_method": false,
          "signature": "ChaCha20Lib.decrypt(key: buffer, nonce: buffer, data: buffer) → buffer",
          "desc": "",
          "tags": [],
          "name": "decrypt",
          "return_str": "buffer",
          "function_type": "Function",
          "returns": [
            {
              "lua_type": "buffer",
              "desc": ""
            }
          ],
          "params": [
            {
              "lua_type": "buffer",
              "name": "key",
              "desc": ""
            },
            {
              "lua_type": "buffer",
              "name": "nonce",
              "desc": ""
            },
            {
              "lua_type": "buffer",
              "name": "data",
              "desc": ""
            }
          ]
        },
        {
          "source": {
            "path": "",
            "line": 68
          },
          "is_method": false,
          "signature": "ChaCha20Lib.poly1305_encrypt(key: buffer, nonce: buffer, data: buffer, aad: buffer?) → (buffer, buffer)",
          "desc": "",
          "tags": [],
          "name": "poly1305_encrypt",
          "return_str": "(buffer, buffer)",
          "function_type": "Function",
          "returns": [
            {
              "lua_type": "buffer",
              "desc": ""
            },
            {
              "lua_type": "buffer",
              "desc": ""
            }
          ],
          "params": [
            {
              "lua_type": "buffer",
              "name": "key",
              "desc": ""
            },
            {
              "lua_type": "buffer",
              "name": "nonce",
              "desc": ""
            },
            {
              "lua_type": "buffer",
              "name": "data",
              "desc": ""
            },
            {
              "lua_type": "buffer?",
              "name": "aad",
              "desc": ""
            }
          ]
        },
        {
          "source": {
            "path": "",
            "line": 69
          },
          "is_method": false,
          "signature": "ChaCha20Lib.poly1305_decrypt(key: buffer, nonce: buffer, ct: buffer, tag: buffer, aad: buffer?) → buffer",
          "desc": "",
          "tags": [],
          "name": "poly1305_decrypt",
          "return_str": "buffer",
          "function_type": "Function",
          "returns": [
            {
              "lua_type": "buffer",
              "desc": ""
            }
          ],
          "params": [
            {
              "lua_type": "buffer",
              "name": "key",
              "desc": ""
            },
            {
              "lua_type": "buffer",
              "name": "nonce",
              "desc": ""
            },
            {
              "lua_type": "buffer",
              "name": "ct",
              "desc": ""
            },
            {
              "lua_type": "buffer",
              "name": "tag",
              "desc": ""
            },
            {
              "lua_type": "buffer?",
              "name": "aad",
              "desc": ""
            }
          ]
        }
      ],
      "metamethods": [],
      "types": []
    },
    {
      "is_primary_export": false,
      "source": {
        "path": "",
        "line": 72
      },
      "tags": [],
      "properties": [],
      "desc": "",
      "name": "KdfLib",
      "functions": [
        {
          "source": {
            "path": "",
            "line": 73
          },
          "is_method": false,
          "signature": "KdfLib.hkdf_sha256(ikm: buffer, salt: buffer?, info: buffer?, length: number) → buffer",
          "desc": "",
          "tags": [],
          "name": "hkdf_sha256",
          "return_str": "buffer",
          "function_type": "Function",
          "returns": [
            {
              "lua_type": "buffer",
              "desc": ""
            }
          ],
          "params": [
            {
              "lua_type": "buffer",
              "name": "ikm",
              "desc": ""
            },
            {
              "lua_type": "buffer?",
              "name": "salt",
              "desc": ""
            },
            {
              "lua_type": "buffer?",
              "name": "info",
              "desc": ""
            },
            {
              "lua_type": "number",
              "name": "length",
              "desc": ""
            }
          ]
        },
        {
          "source": {
            "path": "",
            "line": 74
          },
          "is_method": false,
          "signature": "KdfLib.hkdf_sha512(ikm: buffer, salt: buffer?, info: buffer?, length: number) → buffer",
          "desc": "",
          "tags": [],
          "name": "hkdf_sha512",
          "return_str": "buffer",
          "function_type": "Function",
          "returns": [
            {
              "lua_type": "buffer",
              "desc": ""
            }
          ],
          "params": [
            {
              "lua_type": "buffer",
              "name": "ikm",
              "desc": ""
            },
            {
              "lua_type": "buffer?",
              "name": "salt",
              "desc": ""
            },
            {
              "lua_type": "buffer?",
              "name": "info",
              "desc": ""
            },
            {
              "lua_type": "number",
              "name": "length",
              "desc": ""
            }
          ]
        },
        {
          "source": {
            "path": "",
            "line": 75
          },
          "is_method": false,
          "signature": "KdfLib.pbkdf2_sha256(password: buffer, salt: buffer, iterations: number, length: number) → buffer",
          "desc": "",
          "tags": [],
          "name": "pbkdf2_sha256",
          "return_str": "buffer",
          "function_type": "Function",
          "returns": [
            {
              "lua_type": "buffer",
              "desc": ""
            }
          ],
          "params": [
            {
              "lua_type": "buffer",
              "name": "password",
              "desc": ""
            },
            {
              "lua_type": "buffer",
              "name": "salt",
              "desc": ""
            },
            {
              "lua_type": "number",
              "name": "iterations",
              "desc": ""
            },
            {
              "lua_type": "number",
              "name": "length",
              "desc": ""
            }
          ]
        },
        {
          "source": {
            "path": "",
            "line": 76
          },
          "is_method": false,
          "signature": "KdfLib.pbkdf2_sha512(password: buffer, salt: buffer, iterations: number, length: number) → buffer",
          "desc": "",
          "tags": [],
          "name": "pbkdf2_sha512",
          "return_str": "buffer",
          "function_type": "Function",
          "returns": [
            {
              "lua_type": "buffer",
              "desc": ""
            }
          ],
          "params": [
            {
              "lua_type": "buffer",
              "name": "password",
              "desc": ""
            },
            {
              "lua_type": "buffer",
              "name": "salt",
              "desc": ""
            },
            {
              "lua_type": "number",
              "name": "iterations",
              "desc": ""
            },
            {
              "lua_type": "number",
              "name": "length",
              "desc": ""
            }
          ]
        }
      ],
      "metamethods": [],
      "types": []
    },
    {
      "is_primary_export": false,
      "source": {
        "path": "",
        "line": 79
      },
      "tags": [],
      "properties": [],
      "desc": "",
      "name": "RsaLib",
      "functions": [
        {
          "source": {
            "path": "",
            "line": 80
          },
          "is_method": false,
          "signature": "RsaLib.generate_key(bits: number?) → string",
          "desc": "",
          "tags": [],
          "name": "generate_key",
          "return_str": "string",
          "function_type": "Function",
          "returns": [
            {
              "lua_type": "string",
              "desc": ""
            }
          ],
          "params": [
            {
              "lua_type": "number?",
              "name": "bits",
              "desc": ""
            }
          ]
        },
        {
          "source": {
            "path": "",
            "line": 81
          },
          "is_method": false,
          "signature": "RsaLib.get_public_pem(private_pem: string) → string",
          "desc": "",
          "tags": [],
          "name": "get_public_pem",
          "return_str": "string",
          "function_type": "Function",
          "returns": [
            {
              "lua_type": "string",
              "desc": ""
            }
          ],
          "params": [
            {
              "lua_type": "string",
              "name": "private_pem",
              "desc": ""
            }
          ]
        },
        {
          "source": {
            "path": "",
            "line": 82
          },
          "is_method": false,
          "signature": "RsaLib.encrypt_pkcs1(public_pem: string, data: buffer) → buffer",
          "desc": "",
          "tags": [],
          "name": "encrypt_pkcs1",
          "return_str": "buffer",
          "function_type": "Function",
          "returns": [
            {
              "lua_type": "buffer",
              "desc": ""
            }
          ],
          "params": [
            {
              "lua_type": "string",
              "name": "public_pem",
              "desc": ""
            },
            {
              "lua_type": "buffer",
              "name": "data",
              "desc": ""
            }
          ]
        },
        {
          "source": {
            "path": "",
            "line": 83
          },
          "is_method": false,
          "signature": "RsaLib.decrypt_pkcs1(private_pem: string, data: buffer) → buffer",
          "desc": "",
          "tags": [],
          "name": "decrypt_pkcs1",
          "return_str": "buffer",
          "function_type": "Function",
          "returns": [
            {
              "lua_type": "buffer",
              "desc": ""
            }
          ],
          "params": [
            {
              "lua_type": "string",
              "name": "private_pem",
              "desc": ""
            },
            {
              "lua_type": "buffer",
              "name": "data",
              "desc": ""
            }
          ]
        },
        {
          "source": {
            "path": "",
            "line": 84
          },
          "is_method": false,
          "signature": "RsaLib.encrypt_oaep(public_pem: string, data: buffer, hash: string?) → buffer",
          "desc": "",
          "tags": [],
          "name": "encrypt_oaep",
          "return_str": "buffer",
          "function_type": "Function",
          "returns": [
            {
              "lua_type": "buffer",
              "desc": ""
            }
          ],
          "params": [
            {
              "lua_type": "string",
              "name": "public_pem",
              "desc": ""
            },
            {
              "lua_type": "buffer",
              "name": "data",
              "desc": ""
            },
            {
              "lua_type": "string?",
              "name": "hash",
              "desc": ""
            }
          ]
        },
        {
          "source": {
            "path": "",
            "line": 85
          },
          "is_method": false,
          "signature": "RsaLib.decrypt_oaep(private_pem: string, data: buffer, hash: string?) → buffer",
          "desc": "",
          "tags": [],
          "name": "decrypt_oaep",
          "return_str": "buffer",
          "function_type": "Function",
          "returns": [
            {
              "lua_type": "buffer",
              "desc": ""
            }
          ],
          "params": [
            {
              "lua_type": "string",
              "name": "private_pem",
              "desc": ""
            },
            {
              "lua_type": "buffer",
              "name": "data",
              "desc": ""
            },
            {
              "lua_type": "string?",
              "name": "hash",
              "desc": ""
            }
          ]
        },
        {
          "source": {
            "path": "",
            "line": 86
          },
          "is_method": false,
          "signature": "RsaLib.sign_pkcs1(private_pem: string, data: buffer, hash: string?) → buffer",
          "desc": "",
          "tags": [],
          "name": "sign_pkcs1",
          "return_str": "buffer",
          "function_type": "Function",
          "returns": [
            {
              "lua_type": "buffer",
              "desc": ""
            }
          ],
          "params": [
            {
              "lua_type": "string",
              "name": "private_pem",
              "desc": ""
            },
            {
              "lua_type": "buffer",
              "name": "data",
              "desc": ""
            },
            {
              "lua_type": "string?",
              "name": "hash",
              "desc": ""
            }
          ]
        },
        {
          "source": {
            "path": "",
            "line": 87
          },
          "is_method": false,
          "signature": "RsaLib.verify_pkcs1(public_pem: string, data: buffer, signature: buffer, hash: string?) → boolean",
          "desc": "",
          "tags": [],
          "name": "verify_pkcs1",
          "return_str": "boolean",
          "function_type": "Function",
          "returns": [
            {
              "lua_type": "boolean",
              "desc": ""
            }
          ],
          "params": [
            {
              "lua_type": "string",
              "name": "public_pem",
              "desc": ""
            },
            {
              "lua_type": "buffer",
              "name": "data",
              "desc": ""
            },
            {
              "lua_type": "buffer",
              "name": "signature",
              "desc": ""
            },
            {
              "lua_type": "string?",
              "name": "hash",
              "desc": ""
            }
          ]
        },
        {
          "source": {
            "path": "",
            "line": 88
          },
          "is_method": false,
          "signature": "RsaLib.sign_pss(private_pem: string, data: buffer, hash: string?) → buffer",
          "desc": "",
          "tags": [],
          "name": "sign_pss",
          "return_str": "buffer",
          "function_type": "Function",
          "returns": [
            {
              "lua_type": "buffer",
              "desc": ""
            }
          ],
          "params": [
            {
              "lua_type": "string",
              "name": "private_pem",
              "desc": ""
            },
            {
              "lua_type": "buffer",
              "name": "data",
              "desc": ""
            },
            {
              "lua_type": "string?",
              "name": "hash",
              "desc": ""
            }
          ]
        },
        {
          "source": {
            "path": "",
            "line": 89
          },
          "is_method": false,
          "signature": "RsaLib.verify_pss(public_pem: string, data: buffer, signature: buffer, hash: string?) → boolean",
          "desc": "",
          "tags": [],
          "name": "verify_pss",
          "return_str": "boolean",
          "function_type": "Function",
          "returns": [
            {
              "lua_type": "boolean",
              "desc": ""
            }
          ],
          "params": [
            {
              "lua_type": "string",
              "name": "public_pem",
              "desc": ""
            },
            {
              "lua_type": "buffer",
              "name": "data",
              "desc": ""
            },
            {
              "lua_type": "buffer",
              "name": "signature",
              "desc": ""
            },
            {
              "lua_type": "string?",
              "name": "hash",
              "desc": ""
            }
          ]
        },
        {
          "source": {
            "path": "",
            "line": 90
          },
          "is_method": false,
          "signature": "RsaLib.private_to_der(private_pem: string) → buffer",
          "desc": "",
          "tags": [],
          "name": "private_to_der",
          "return_str": "buffer",
          "function_type": "Function",
          "returns": [
            {
              "lua_type": "buffer",
              "desc": ""
            }
          ],
          "params": [
            {
              "lua_type": "string",
              "name": "private_pem",
              "desc": ""
            }
          ]
        },
        {
          "source": {
            "path": "",
            "line": 91
          },
          "is_method": false,
          "signature": "RsaLib.public_to_der(public_pem: string) → buffer",
          "desc": "",
          "tags": [],
          "name": "public_to_der",
          "return_str": "buffer",
          "function_type": "Function",
          "returns": [
            {
              "lua_type": "buffer",
              "desc": ""
            }
          ],
          "params": [
            {
              "lua_type": "string",
              "name": "public_pem",
              "desc": ""
            }
          ]
        },
        {
          "source": {
            "path": "",
            "line": 92
          },
          "is_method": false,
          "signature": "RsaLib.private_from_der(der: buffer) → string",
          "desc": "",
          "tags": [],
          "name": "private_from_der",
          "return_str": "string",
          "function_type": "Function",
          "returns": [
            {
              "lua_type": "string",
              "desc": ""
            }
          ],
          "params": [
            {
              "lua_type": "buffer",
              "name": "der",
              "desc": ""
            }
          ]
        },
        {
          "source": {
            "path": "",
            "line": 93
          },
          "is_method": false,
          "signature": "RsaLib.public_from_der(der: buffer) → string",
          "desc": "",
          "tags": [],
          "name": "public_from_der",
          "return_str": "string",
          "function_type": "Function",
          "returns": [
            {
              "lua_type": "string",
              "desc": ""
            }
          ],
          "params": [
            {
              "lua_type": "buffer",
              "name": "der",
              "desc": ""
            }
          ]
        },
        {
          "source": {
            "path": "",
            "line": 94
          },
          "is_method": false,
          "signature": "RsaLib.get_key_bits(pem: string) → number",
          "desc": "",
          "tags": [],
          "name": "get_key_bits",
          "return_str": "number",
          "function_type": "Function",
          "returns": [
            {
              "lua_type": "number",
              "desc": ""
            }
          ],
          "params": [
            {
              "lua_type": "string",
              "name": "pem",
              "desc": ""
            }
          ]
        }
      ],
      "metamethods": [],
      "types": []
    },
    {
      "is_primary_export": false,
      "source": {
        "path": "",
        "line": 97
      },
      "tags": [],
      "properties": [],
      "desc": "",
      "name": "EccLib",
      "functions": [
        {
          "source": {
            "path": "",
            "line": 98
          },
          "is_method": false,
          "signature": "EccLib.generate_key(curve: string?) → string",
          "desc": "",
          "tags": [],
          "name": "generate_key",
          "return_str": "string",
          "function_type": "Function",
          "returns": [
            {
              "lua_type": "string",
              "desc": ""
            }
          ],
          "params": [
            {
              "lua_type": "string?",
              "name": "curve",
              "desc": ""
            }
          ]
        },
        {
          "source": {
            "path": "",
            "line": 99
          },
          "is_method": false,
          "signature": "EccLib.get_public_pem(private_pem: string) → string",
          "desc": "",
          "tags": [],
          "name": "get_public_pem",
          "return_str": "string",
          "function_type": "Function",
          "returns": [
            {
              "lua_type": "string",
              "desc": ""
            }
          ],
          "params": [
            {
              "lua_type": "string",
              "name": "private_pem",
              "desc": ""
            }
          ]
        },
        {
          "source": {
            "path": "",
            "line": 100
          },
          "is_method": false,
          "signature": "EccLib.sign(private_pem: string, data: buffer, hash: string?) → buffer",
          "desc": "",
          "tags": [],
          "name": "sign",
          "return_str": "buffer",
          "function_type": "Function",
          "returns": [
            {
              "lua_type": "buffer",
              "desc": ""
            }
          ],
          "params": [
            {
              "lua_type": "string",
              "name": "private_pem",
              "desc": ""
            },
            {
              "lua_type": "buffer",
              "name": "data",
              "desc": ""
            },
            {
              "lua_type": "string?",
              "name": "hash",
              "desc": ""
            }
          ]
        },
        {
          "source": {
            "path": "",
            "line": 101
          },
          "is_method": false,
          "signature": "EccLib.verify(public_pem: string, data: buffer, signature: buffer, hash: string?) → boolean",
          "desc": "",
          "tags": [],
          "name": "verify",
          "return_str": "boolean",
          "function_type": "Function",
          "returns": [
            {
              "lua_type": "boolean",
              "desc": ""
            }
          ],
          "params": [
            {
              "lua_type": "string",
              "name": "public_pem",
              "desc": ""
            },
            {
              "lua_type": "buffer",
              "name": "data",
              "desc": ""
            },
            {
              "lua_type": "buffer",
              "name": "signature",
              "desc": ""
            },
            {
              "lua_type": "string?",
              "name": "hash",
              "desc": ""
            }
          ]
        },
        {
          "source": {
            "path": "",
            "line": 102
          },
          "is_method": false,
          "signature": "EccLib.derive(private_pem: string, peer_public_pem: string) → buffer",
          "desc": "",
          "tags": [],
          "name": "derive",
          "return_str": "buffer",
          "function_type": "Function",
          "returns": [
            {
              "lua_type": "buffer",
              "desc": ""
            }
          ],
          "params": [
            {
              "lua_type": "string",
              "name": "private_pem",
              "desc": ""
            },
            {
              "lua_type": "string",
              "name": "peer_public_pem",
              "desc": ""
            }
          ]
        },
        {
          "source": {
            "path": "",
            "line": 103
          },
          "is_method": false,
          "signature": "EccLib.private_to_der(private_pem: string) → buffer",
          "desc": "",
          "tags": [],
          "name": "private_to_der",
          "return_str": "buffer",
          "function_type": "Function",
          "returns": [
            {
              "lua_type": "buffer",
              "desc": ""
            }
          ],
          "params": [
            {
              "lua_type": "string",
              "name": "private_pem",
              "desc": ""
            }
          ]
        },
        {
          "source": {
            "path": "",
            "line": 104
          },
          "is_method": false,
          "signature": "EccLib.public_to_der(public_pem: string) → buffer",
          "desc": "",
          "tags": [],
          "name": "public_to_der",
          "return_str": "buffer",
          "function_type": "Function",
          "returns": [
            {
              "lua_type": "buffer",
              "desc": ""
            }
          ],
          "params": [
            {
              "lua_type": "string",
              "name": "public_pem",
              "desc": ""
            }
          ]
        },
        {
          "source": {
            "path": "",
            "line": 105
          },
          "is_method": false,
          "signature": "EccLib.private_from_der(der: buffer) → string",
          "desc": "",
          "tags": [],
          "name": "private_from_der",
          "return_str": "string",
          "function_type": "Function",
          "returns": [
            {
              "lua_type": "string",
              "desc": ""
            }
          ],
          "params": [
            {
              "lua_type": "buffer",
              "name": "der",
              "desc": ""
            }
          ]
        },
        {
          "source": {
            "path": "",
            "line": 106
          },
          "is_method": false,
          "signature": "EccLib.public_from_der(der: buffer) → string",
          "desc": "",
          "tags": [],
          "name": "public_from_der",
          "return_str": "string",
          "function_type": "Function",
          "returns": [
            {
              "lua_type": "string",
              "desc": ""
            }
          ],
          "params": [
            {
              "lua_type": "buffer",
              "name": "der",
              "desc": ""
            }
          ]
        },
        {
          "source": {
            "path": "",
            "line": 107
          },
          "is_method": false,
          "signature": "EccLib.get_key_bits(pem: string) → number",
          "desc": "",
          "tags": [],
          "name": "get_key_bits",
          "return_str": "number",
          "function_type": "Function",
          "returns": [
            {
              "lua_type": "number",
              "desc": ""
            }
          ],
          "params": [
            {
              "lua_type": "string",
              "name": "pem",
              "desc": ""
            }
          ]
        },
        {
          "source": {
            "path": "",
            "line": 108
          },
          "is_method": false,
          "signature": "EccLib.get_curve(pem: string) → string",
          "desc": "",
          "tags": [],
          "name": "get_curve",
          "return_str": "string",
          "function_type": "Function",
          "returns": [
            {
              "lua_type": "string",
              "desc": ""
            }
          ],
          "params": [
            {
              "lua_type": "string",
              "name": "pem",
              "desc": ""
            }
          ]
        }
      ],
      "metamethods": [],
      "types": []
    },
    {
      "is_primary_export": false,
      "source": {
        "path": "",
        "line": 111
      },
      "tags": [],
      "properties": [],
      "desc": "",
      "name": "RandomLib",
      "functions": [
        {
          "source": {
            "path": "",
            "line": 112
          },
          "is_method": false,
          "signature": "RandomLib.randint(n: number) → number",
          "desc": "",
          "tags": [],
          "name": "randint",
          "return_str": "number",
          "function_type": "Function",
          "returns": [
            {
              "lua_type": "number",
              "desc": ""
            }
          ],
          "params": [
            {
              "lua_type": "number",
              "name": "n",
              "desc": ""
            }
          ]
        },
        {
          "source": {
            "path": "",
            "line": 113
          },
          "is_method": false,
          "signature": "RandomLib.choice(tbl: { any }) → any",
          "desc": "",
          "tags": [],
          "name": "choice",
          "return_str": "any",
          "function_type": "Function",
          "returns": [
            {
              "lua_type": "any",
              "desc": ""
            }
          ],
          "params": [
            {
              "lua_type": "{ any }",
              "name": "tbl",
              "desc": ""
            }
          ]
        },
        {
          "source": {
            "path": "",
            "line": 114
          },
          "is_method": false,
          "signature": "RandomLib.bits(n: number) → number",
          "desc": "",
          "tags": [],
          "name": "bits",
          "return_str": "number",
          "function_type": "Function",
          "returns": [
            {
              "lua_type": "number",
              "desc": ""
            }
          ],
          "params": [
            {
              "lua_type": "number",
              "name": "n",
              "desc": ""
            }
          ]
        },
        {
          "source": {
            "path": "",
            "line": 115
          },
          "is_method": false,
          "signature": "RandomLib.bytes(n: number) → buffer",
          "desc": "",
          "tags": [],
          "name": "bytes",
          "return_str": "buffer",
          "function_type": "Function",
          "returns": [
            {
              "lua_type": "buffer",
              "desc": ""
            }
          ],
          "params": [
            {
              "lua_type": "number",
              "name": "n",
              "desc": ""
            }
          ]
        },
        {
          "source": {
            "path": "",
            "line": 116
          },
          "is_method": false,
          "signature": "RandomLib.hex(n: number) → string",
          "desc": "",
          "tags": [],
          "name": "hex",
          "return_str": "string",
          "function_type": "Function",
          "returns": [
            {
              "lua_type": "string",
              "desc": ""
            }
          ],
          "params": [
            {
              "lua_type": "number",
              "name": "n",
              "desc": ""
            }
          ]
        }
      ],
      "metamethods": [],
      "types": []
    }
  ]
}