{
  "slug": "evp-derive",
  "name": "gizza-ai/evp-derive",
  "version": "0.1.0",
  "title": "EVP_BytesToKey — OpenSSL key/IV derivation from a password — gizza.ai",
  "description": "Reproduce OpenSSL's EVP_BytesToKey key and IV derivation from a password and salt (MD5, SHA-1, SHA-256, SHA-512) — free and entirely in your browser.",
  "tags": [
    "evp_bytestokey",
    "openssl key derivation",
    "openssl iv",
    "derive key from password",
    "openssl enc",
    "md5 key derivation",
    "legacy kdf",
    "openssl decrypt"
  ],
  "category": "security",
  "urls": {
    "page": "https://gizza.ai/tools/evp-derive/",
    "markdown": "https://gizza.ai/tools/evp-derive/index.md",
    "descriptor": "https://gizza.ai/tools/evp-derive/tool.json",
    "deep_link_example": "https://gizza.ai/tools/evp-derive/?password=The%20password%20%2F%20passphrase&salt=8-byte%20salt%20%28often%20hex%29%3B%20leave%20empty%20for%20-nosalt&salt_encoding=utf8&hash=md5&key_length=32&iv_length=16&count=1&encoding=hex"
  },
  "cli": "gizza tool evp-derive \"The password / passphrase\"",
  "tool": {
    "description": "Reproduce OpenSSL's legacy EVP_BytesToKey key/IV derivation from a password, salt, and hash — the KDF behind `openssl enc -pass pass:… [-S salt]` without -pbkdf2. Returns the derived key (and IV) as hex (default) or base64.",
    "parameters": {
      "additionalProperties": false,
      "properties": {
        "count": {
          "maximum": 10000000,
          "minimum": 1,
          "type": "integer"
        },
        "encoding": {
          "default": "hex",
          "enum": [
            "hex",
            "base64"
          ],
          "type": "string"
        },
        "hash": {
          "default": "md5",
          "enum": [
            "md5",
            "sha1",
            "sha256",
            "sha512"
          ],
          "type": "string"
        },
        "iv_length": {
          "maximum": 1024,
          "minimum": 0,
          "type": "integer"
        },
        "key_length": {
          "maximum": 1024,
          "minimum": 0,
          "type": "integer"
        },
        "password": {
          "type": "string"
        },
        "salt": {
          "type": "string"
        },
        "salt_encoding": {
          "default": "utf8",
          "enum": [
            "utf8",
            "hex",
            "base64"
          ],
          "type": "string"
        }
      },
      "required": [
        "password"
      ],
      "type": "object"
    }
  }
}