{
  "classes": [
    {
      "constants": [],
      "types": [],
      "name": "@eryx/crypto/_crypto",
      "tags": [],
      "functions": [],
      "properties": [],
      "source": {
        "path": "",
        "line": 0
      },
      "desc": "Type stub for the _crypto native DLL.\nThe DLL takes precedence at runtime; this file exists for IDE type support."
    },
    {
      "is_primary_export": false,
      "source": {
        "path": "",
        "line": 4
      },
      "tags": [],
      "properties": [],
      "desc": "",
      "name": "HashLib",
      "functions": [
        {
          "source": {
            "path": "",
            "line": 5
          },
          "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": 6
          },
          "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": 7
          },
          "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": 8
          },
          "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": 9
          },
          "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": 10
          },
          "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": 11
          },
          "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": 12
          },
          "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": 13
          },
          "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": 14
          },
          "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": 17
      },
      "tags": [],
      "properties": [],
      "desc": "",
      "name": "HmacLib",
      "functions": [
        {
          "source": {
            "path": "",
            "line": 18
          },
          "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": 19
          },
          "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": 20
          },
          "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": 21
          },
          "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": 22
          },
          "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": 23
          },
          "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": 24
          },
          "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": 25
          },
          "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": 26
          },
          "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": 27
          },
          "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": 31
      },
      "tags": [],
      "properties": [],
      "desc": "Symmetric cipher: key, iv, data -> ciphertext (CBC uses PKCS7 padding)",
      "name": "CipherLib",
      "functions": [
        {
          "source": {
            "path": "",
            "line": 32
          },
          "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": 33
          },
          "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": 34
          },
          "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": 35
          },
          "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": 36
          },
          "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": 37
          },
          "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": 38
          },
          "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": 39
          },
          "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": 40
          },
          "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": 41
          },
          "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": 44
      },
      "tags": [],
      "properties": [],
      "desc": "",
      "name": "CamelliaLib",
      "functions": [
        {
          "source": {
            "path": "",
            "line": 45
          },
          "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": 46
          },
          "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": 47
          },
          "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": 48
          },
          "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": 49
          },
          "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": 50
          },
          "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": 54
      },
      "tags": [],
      "properties": [],
      "desc": "3DES only; key must be 24 bytes",
      "name": "DesLib",
      "functions": [
        {
          "source": {
            "path": "",
            "line": 55
          },
          "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": 56
          },
          "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": 59
      },
      "tags": [],
      "properties": [],
      "desc": "",
      "name": "ChaCha20Lib",
      "functions": [
        {
          "source": {
            "path": "",
            "line": 60
          },
          "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": 61
          },
          "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": 62
          },
          "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": 63
          },
          "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": 66
      },
      "tags": [],
      "properties": [],
      "desc": "",
      "name": "KdfLib",
      "functions": [
        {
          "source": {
            "path": "",
            "line": 67
          },
          "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": 68
          },
          "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": 69
          },
          "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": 70
          },
          "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": 73
      },
      "tags": [],
      "properties": [],
      "desc": "",
      "name": "RsaLib",
      "functions": [
        {
          "source": {
            "path": "",
            "line": 74
          },
          "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": 75
          },
          "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": 76
          },
          "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": 77
          },
          "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": 78
          },
          "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": 79
          },
          "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": 80
          },
          "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": 81
          },
          "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": 82
          },
          "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": 83
          },
          "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": 84
          },
          "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": 85
          },
          "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": 86
          },
          "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": 87
          },
          "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": 88
          },
          "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": 91
      },
      "tags": [],
      "properties": [],
      "desc": "",
      "name": "RandomLib",
      "functions": [
        {
          "source": {
            "path": "",
            "line": 92
          },
          "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": 93
          },
          "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": 94
          },
          "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": 95
          },
          "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": 96
          },
          "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": []
    }
  ]
}