{
  "_id": "6a2c955c3efcd9bda42e0e26",
  "Package": "mx.crypto",
  "Type": "Package",
  "Title": "Matrix End-to-End Encryption Primitives",
  "Version": "0.2.0",
  "Date": "2026-05-13",
  "Authors@R": "c(\nperson(\"Troy\", \"Hernandez\", role = c(\"aut\", \"cre\"),\nemail = \"troy@cornball.ai\",\ncomment = c(ORCID = \"0009-0005-4248-604X\")),\nperson(\"cornball.ai\", role = \"cph\"),\nperson(\"The Matrix.org Foundation C.I.C.\", role = c(\"ctb\", \"cph\"),\ncomment = \"Authors of the bundled 'vodozemac' Rust crate; see inst/AUTHORS\"),\nperson(\"Authors of the dependency Rust crates\", role = \"ctb\",\ncomment = \"see inst/AUTHORS for details\"))",
  "Description": "'Olm' and 'Megolm' encryption ratchet primitives for the\n'Matrix' messaging protocol <https://matrix.org/>, wrapping the\n'vodozemac' Rust crate. Provides device-key generation,\none-time-key management, 1:1 'Olm' sessions, and 'Megolm' group\nsessions. Pairs with the 'mx.api' package, which handles\n'Matrix' HTTP transport.",
  "License": "MIT + file LICENSE | Apache License 2.0",
  "URL": "https://github.com/cornball-ai/mx.crypto",
  "BugReports": "https://github.com/cornball-ai/mx.crypto/issues",
  "SystemRequirements": "Cargo (Rust's package manager), rustc (>= 1.85)",
  "VignetteBuilder": "simplermarkdown",
  "Encoding": "UTF-8",
  "NeedsCompilation": "yes",
  "Packaged": {
    "Date": "2026-06-12 23:20:28 UTC",
    "User": "root"
  },
  "Author": "Troy Hernandez [aut, cre] (ORCID:\n<https://orcid.org/0009-0005-4248-604X>), cornball.ai [cph],\nThe Matrix.org Foundation C.I.C. [ctb, cph] (Authors of the\nbundled 'vodozemac' Rust crate; see inst/AUTHORS), Authors of\nthe dependency Rust crates [ctb] (see inst/AUTHORS for details)",
  "Maintainer": "Troy Hernandez <troy@cornball.ai>",
  "Config/pak/sysreqs": "libclang-dev",
  "Repository": "https://cran.r-universe.dev",
  "Date/Publication": "2026-06-12 19:30:02 UTC",
  "RemoteUrl": "https://github.com/cran/mx.crypto",
  "RemoteRef": "HEAD",
  "RemoteSha": "17fa2b4135a0bbeccaf58be2ea9ac06f6530c47a",
  "MD5sum": "229b78c3e66dab2f29f68eeb1e7a1c2a",
  "_user": "cran",
  "_type": "src",
  "_file": "mx.crypto_0.2.0.tar.gz",
  "_fileid": "6b9960fcf7031b97d40439b9da6960cc4fbd78801b39ba012ccac473105620b7",
  "_filesize": 86327549,
  "_sha256": "6b9960fcf7031b97d40439b9da6960cc4fbd78801b39ba012ccac473105620b7",
  "_created": "2026-06-12T23:20:28.000Z",
  "_published": "2026-06-12T23:25:16.828Z",
  "_distro": "noble",
  "_jobs": [
    {
      "job": 81139342890,
      "time": 183,
      "config": "linux-devel-arm64",
      "r": "4.7.0",
      "check": "WARNING",
      "artifact": "7604721982"
    },
    {
      "job": 81139342883,
      "time": 171,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "WARNING",
      "artifact": "7604719830"
    },
    {
      "job": 81139342882,
      "time": 184,
      "config": "linux-release-arm64",
      "r": "4.6.0",
      "check": "WARNING",
      "artifact": "7604722144"
    },
    {
      "job": 81139342906,
      "time": 173,
      "config": "linux-release-x86_64",
      "r": "4.6.0",
      "check": "WARNING",
      "artifact": "7604721436"
    },
    {
      "job": 81138935685,
      "time": 241,
      "config": "source",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7604686435"
    },
    {
      "job": 81139342858,
      "time": 167,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7604719214"
    }
  ],
  "_buildurl": "https://github.com/r-universe/cran/actions/runs/27448569638",
  "_status": "success",
  "_host": "GitHub-Actions",
  "_upstream": "https://github.com/cran/mx.crypto",
  "_commit": {
    "id": "17fa2b4135a0bbeccaf58be2ea9ac06f6530c47a",
    "author": "Troy Hernandez <troy@cornball.ai>",
    "committer": "cran-robot <csardi.gabor+cran@gmail.com>",
    "message": "version 0.2.0\n",
    "time": 1781292602
  },
  "_maintainer": {
    "name": "Troy Hernandez",
    "email": "troy@cornball.ai",
    "login": "troyhernandez",
    "description": "",
    "uuid": 5670773
  },
  "_registered": true,
  "_dependencies": [
    {
      "package": "R",
      "version": ">= 4.3",
      "role": "Depends"
    },
    {
      "package": "tinytest",
      "role": "Suggests"
    },
    {
      "package": "mx.api",
      "version": ">= 0.2.0",
      "role": "Suggests"
    },
    {
      "package": "simplermarkdown",
      "role": "Suggests"
    }
  ],
  "_owner": "cran",
  "_selfowned": false,
  "_usedby": 0,
  "_updates": [
    {
      "week": "2026-24",
      "n": 1
    }
  ],
  "_tags": [
    {
      "name": "0.2.0",
      "date": "2026-06-12"
    }
  ],
  "_stars": 0,
  "_contributors": [
    {
      "user": "troyhernandez",
      "count": 1,
      "uuid": 5670773
    }
  ],
  "_userbio": {
    "uuid": 6899542,
    "type": "organization",
    "name": "cran",
    "description": "Unofficial read-only mirror of all CRAN R packages"
  },
  "_downloads": {
    "count": 0,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/mx.crypto"
  },
  "_devurl": "https://github.com/cornball-ai/mx.crypto",
  "_searchresults": 0,
  "_cargo": true,
  "_topics": [
    "rust",
    "cargo"
  ],
  "_rbuild": "4.6.0",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/mx.crypto.html",
    "extra/NEWS.html",
    "extra/NEWS.txt",
    "extra/readme.html",
    "extra/readme.md",
    "LICENSE",
    "manual.pdf"
  ],
  "_cranurl": false,
  "_releases": [
    {
      "version": "0.2.0",
      "date": "2026-06-12"
    }
  ],
  "_exports": [
    "mxc_account_fallback_key",
    "mxc_account_generate_one_time_keys",
    "mxc_account_identity_keys",
    "mxc_account_mark_published",
    "mxc_account_new",
    "mxc_account_one_time_keys",
    "mxc_account_pickle",
    "mxc_account_sign",
    "mxc_account_unpickle",
    "mxc_ed25519_verify",
    "mxc_megolm_decrypt",
    "mxc_megolm_encrypt",
    "mxc_megolm_inbound_new",
    "mxc_megolm_inbound_pickle",
    "mxc_megolm_inbound_unpickle",
    "mxc_megolm_outbound_info",
    "mxc_megolm_outbound_new",
    "mxc_megolm_outbound_pickle",
    "mxc_megolm_outbound_unpickle",
    "mxc_olm_create_inbound",
    "mxc_olm_create_outbound",
    "mxc_olm_decrypt",
    "mxc_olm_encrypt",
    "mxc_olm_session_pickle",
    "mxc_olm_session_unpickle",
    "mxc_verify_device_keys",
    "mxc_verify_one_time_key"
  ],
  "_help": [
    {
      "page": "mx.crypto-package",
      "title": "mx.crypto: Matrix End-to-End Encryption Primitives",
      "topics": [
        "mx.crypto-package",
        "mx.crypto"
      ]
    },
    {
      "page": "mxc_account_fallback_key",
      "title": "Generate and return a fallback key",
      "topics": [
        "mxc_account_fallback_key"
      ]
    },
    {
      "page": "mxc_account_generate_one_time_keys",
      "title": "Generate one-time keys",
      "topics": [
        "mxc_account_generate_one_time_keys"
      ]
    },
    {
      "page": "mxc_account_identity_keys",
      "title": "Public identity keys for an Account",
      "topics": [
        "mxc_account_identity_keys"
      ]
    },
    {
      "page": "mxc_account_mark_published",
      "title": "Mark current one-time keys as published",
      "topics": [
        "mxc_account_mark_published"
      ]
    },
    {
      "page": "mxc_account_new",
      "title": "Create a new Olm Account",
      "topics": [
        "mxc_account_new"
      ]
    },
    {
      "page": "mxc_account_one_time_keys",
      "title": "Read pending one-time keys",
      "topics": [
        "mxc_account_one_time_keys"
      ]
    },
    {
      "page": "mxc_account_pickle",
      "title": "Pickle an Account to an encrypted blob",
      "topics": [
        "mxc_account_pickle"
      ]
    },
    {
      "page": "mxc_account_sign",
      "title": "Sign canonical JSON with the Account's ed25519 key",
      "topics": [
        "mxc_account_sign"
      ]
    },
    {
      "page": "mxc_account_unpickle",
      "title": "Restore an Account from an encrypted pickle",
      "topics": [
        "mxc_account_unpickle"
      ]
    },
    {
      "page": "mxc_ed25519_verify",
      "title": "Verify an Ed25519 signature",
      "topics": [
        "mxc_ed25519_verify"
      ]
    },
    {
      "page": "mxc_megolm_decrypt",
      "title": "Decrypt a room message",
      "topics": [
        "mxc_megolm_decrypt"
      ]
    },
    {
      "page": "mxc_megolm_encrypt",
      "title": "Encrypt a room message",
      "topics": [
        "mxc_megolm_encrypt"
      ]
    },
    {
      "page": "mxc_megolm_inbound_new",
      "title": "Build an inbound Megolm session from a shared session_key",
      "topics": [
        "mxc_megolm_inbound_new"
      ]
    },
    {
      "page": "mxc_megolm_inbound_pickle",
      "title": "Pickle an inbound group session",
      "topics": [
        "mxc_megolm_inbound_pickle"
      ]
    },
    {
      "page": "mxc_megolm_inbound_unpickle",
      "title": "Restore an inbound group session from a pickle",
      "topics": [
        "mxc_megolm_inbound_unpickle"
      ]
    },
    {
      "page": "mxc_megolm_outbound_info",
      "title": "Inspect an outbound group session",
      "topics": [
        "mxc_megolm_outbound_info"
      ]
    },
    {
      "page": "mxc_megolm_outbound_new",
      "title": "Create an outbound Megolm group session",
      "topics": [
        "mxc_megolm_outbound_new"
      ]
    },
    {
      "page": "mxc_megolm_outbound_pickle",
      "title": "Pickle an outbound group session",
      "topics": [
        "mxc_megolm_outbound_pickle"
      ]
    },
    {
      "page": "mxc_megolm_outbound_unpickle",
      "title": "Restore an outbound group session from a pickle",
      "topics": [
        "mxc_megolm_outbound_unpickle"
      ]
    },
    {
      "page": "mxc_olm_create_inbound",
      "title": "Build an inbound Olm session from a pre-key message",
      "topics": [
        "mxc_olm_create_inbound"
      ]
    },
    {
      "page": "mxc_olm_create_outbound",
      "title": "Start an outbound Olm session",
      "topics": [
        "mxc_olm_create_outbound"
      ]
    },
    {
      "page": "mxc_olm_decrypt",
      "title": "Decrypt a message on an Olm session",
      "topics": [
        "mxc_olm_decrypt"
      ]
    },
    {
      "page": "mxc_olm_encrypt",
      "title": "Encrypt a message on an Olm session",
      "topics": [
        "mxc_olm_encrypt"
      ]
    },
    {
      "page": "mxc_olm_session_pickle",
      "title": "Pickle an Olm session",
      "topics": [
        "mxc_olm_session_pickle"
      ]
    },
    {
      "page": "mxc_olm_session_unpickle",
      "title": "Restore an Olm session from a pickle",
      "topics": [
        "mxc_olm_session_unpickle"
      ]
    },
    {
      "page": "mxc_verify_device_keys",
      "title": "Verify a Matrix device-keys object",
      "topics": [
        "mxc_verify_device_keys"
      ]
    },
    {
      "page": "mxc_verify_one_time_key",
      "title": "Verify a signed one-time / fallback key",
      "topics": [
        "mxc_verify_one_time_key"
      ]
    }
  ],
  "_readme": "https://github.com/cran/mx.crypto/raw/HEAD/README.md",
  "_rundeps": [],
  "_vignettes": [
    {
      "source": "security-audit.Rmd",
      "filename": "security-audit.html",
      "title": "Security audit (mx.crypto 0.2.0)",
      "engine": "simplermarkdown::mdweave_to_html",
      "headings": [
        "title: \"Security audit (mx.crypto 0.2.0)\"",
        "Security audit: mx.crypto 0.2.0",
        "1. Scope and threat model",
        "2. Dependency baseline: vodozemac 0.10.0",
        "3. Surface map",
        "4. Canonical JSON",
        "5. Finding (HIGH): mxc_olm_create_outbound swallowed SessionCreationError",
        "Reproducer (before the fix)",
        "Severity",
        "Fix",
        "Reproducer (after the fix)",
        "Same review on the rest of the surface",
        "6. Finding (HIGH): no signature-verification primitive",
        "Fix: three exports",
        "Hostile-homeserver fixtures",
        "What this does NOT cover",
        "7. DH / session error propagation (full pass)",
        "8. Pickle and local state",
        "9. Other Soatok findings, mapped to our pin",
        "10. API boundary with mx.api",
        "11. Pending follow-ups",
        "12. Verification",
        "Changelog"
      ],
      "created": "2026-06-12 19:30:02",
      "modified": "2026-06-12 19:30:02",
      "commits": 1
    }
  ],
  "_score": 2.6989700043360187,
  "_indexed": true,
  "_nocasepkg": "mx.crypto",
  "_universes": [
    "cran",
    "troyhernandez",
    "cornball-ai"
  ],
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "0.2.0",
      "date": "2026-06-12T23:23:55.000Z",
      "distro": "noble",
      "arch": "aarch64",
      "commit": "17fa2b4135a0bbeccaf58be2ea9ac06f6530c47a",
      "fileid": "1ff5dcbb2181ba5c1c54a59e80836ecd725a2a45a90ee1b9e623ece6f9d647eb",
      "status": "success",
      "check": "WARNING",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/27448569638"
    },
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "0.2.0",
      "date": "2026-06-12T23:23:41.000Z",
      "distro": "noble",
      "arch": "x86_64",
      "commit": "17fa2b4135a0bbeccaf58be2ea9ac06f6530c47a",
      "fileid": "689eb3997d7485518e3c2adac0943d33e9874e6b16d865f8b6d198a4119963ee",
      "status": "success",
      "check": "WARNING",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/27448569638"
    },
    {
      "r": "4.6.0",
      "os": "linux",
      "version": "0.2.0",
      "date": "2026-06-12T23:23:55.000Z",
      "distro": "noble",
      "arch": "aarch64",
      "commit": "17fa2b4135a0bbeccaf58be2ea9ac06f6530c47a",
      "fileid": "e4b28e7f6ae1b0fb6dbfe28317a72e70f3e924e2c08bf4596cfb0cb1e7c84f16",
      "status": "success",
      "check": "WARNING",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/27448569638"
    },
    {
      "r": "4.6.0",
      "os": "linux",
      "version": "0.2.0",
      "date": "2026-06-12T23:23:48.000Z",
      "distro": "noble",
      "arch": "x86_64",
      "commit": "17fa2b4135a0bbeccaf58be2ea9ac06f6530c47a",
      "fileid": "d6b5b3405dfa277cf7fb70c49819ad630e920527fa307b89f3a3e37a22933859",
      "status": "success",
      "check": "WARNING",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/27448569638"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "0.2.0",
      "date": "2026-06-12T23:24:01.000Z",
      "arch": "emscripten",
      "commit": "17fa2b4135a0bbeccaf58be2ea9ac06f6530c47a",
      "fileid": "12329aa35330bd38225f6da1c51c3fb7a58064d7a435233a385848e963b41fee",
      "status": "success",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/27448569638"
    }
  ]
}