{"id":15366899,"url":"https://github.com/cupcakearmy/occulto","last_synced_at":"2025-04-15T12:33:32.789Z","repository":{"id":57313259,"uuid":"178604284","full_name":"cupcakearmy/occulto","owner":"cupcakearmy","description":"Isomorphic encryption library that works both in the browser and node.","archived":false,"fork":false,"pushed_at":"2025-02-03T10:16:45.000Z","size":485,"stargazers_count":2,"open_issues_count":1,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-24T19:50:22.237Z","etag":null,"topics":["aes","crypto","crypto-library","cryptography","easy-to-use","hash","high-level","node","node-crypto","typescript"],"latest_commit_sha":null,"homepage":"https://occulto.pages.dev","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cupcakearmy.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":"ROADMAP.md","authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-03-30T19:47:28.000Z","updated_at":"2024-09-02T07:56:36.000Z","dependencies_parsed_at":"2023-11-21T10:42:05.784Z","dependency_job_id":"c31a6f37-09ab-423e-8857-50234affc75e","html_url":"https://github.com/cupcakearmy/occulto","commit_stats":{"total_commits":66,"total_committers":3,"mean_commits":22.0,"dds":0.4696969696969697,"last_synced_commit":"4c61c067e6c7238c2621e28c954350e4251c3d86"},"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cupcakearmy%2Focculto","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cupcakearmy%2Focculto/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cupcakearmy%2Focculto/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cupcakearmy%2Focculto/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cupcakearmy","download_url":"https://codeload.github.com/cupcakearmy/occulto/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249072343,"owners_count":21208173,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aes","crypto","crypto-library","cryptography","easy-to-use","hash","high-level","node","node-crypto","typescript"],"created_at":"2024-10-01T13:20:12.337Z","updated_at":"2025-04-15T12:33:32.764Z","avatar_url":"https://github.com/cupcakearmy.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# occulto 🔒\n\n\u003e Occulto \u003ckbd\u003e/okˈkul.to/\u003c/kbd\u003e\n\u003e\n\u003e _hidden, concealed. secret._\n\n![version badge](https://badgen.net/npm/v/occulto)\n![downloads badge](https://badgen.net/npm/dt/occulto)\n![dependency count](https://badgen.net/bundlephobia/dependency-count/occulto)\n![minzip size badge](https://badgen.net/bundlephobia/minzip/occulto)\n![types badge](https://badgen.net/npm/types/occulto)\n\nIsomorphic encryption library that works both in the browser and node with _no dependencies_ and written in Typescript.\n\n[**📒 API Documentation 📒**](https://occulto.pages.dev)\n\n## Quickstart 🚀\n\n###### Requirements\n\n- Node \u003e= 16 required\n\n###### Install\n\n```\nnpm i occulto\n```\n\n## Examples\n\n### [RSA](https://occulto.pages.dev/classes/RSA)\n\n```typescript\nimport { RSA } from 'occulto'\n\nconst pair = await RSA.generateKeyPair(2 ** 11)\nconst bytes = Bytes.encode(message)\n\nconst encrypted = await RSA.encrypt(bytes, pair.public)\nconst decrypted = await RSA.decrypt(encrypted, pair.private)\n```\n\n### [AES](https://occulto.pages.dev/classes/AES)\n\n[Available Modes](https://occulto.pages.dev/enums/Modes)\n\nThere is an _easy_ API, that will take care of everything for you.\n\n```typescript\nimport { AES } from 'occulto'\n\nconst password = 'foobar'\nconst message = 'this is a secret'\n\nconst encrypted = await AES.encryptEasy(message, password)\nconst decrypted = await AES.decryptEasy(encrypted, password)\n```\n\nThe low level API is also exposed for advanced usages.\n\n```typescript\nimport { AES } from 'occulto'\n\nconst message = 'this is a secret'\nconst key = await AES.generateKey()\nconst data = Bytes.encode(message)\n\nconst ciphertext = await AES.encrypt(data, key)\nconst plaintext = await AES.decrypt(ciphertext, key)\n```\n\n### [Hash](https://occulto.pages.dev/classes/Hash)\n\n[Available hashes](https://occulto.pages.dev/enums/Hashes)\n\n```typescript\nimport { Hash, Hashes } from 'occulto'\n\nconst hashed = await Hash.hash('Some value', Hashes.SHA_512)\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcupcakearmy%2Focculto","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcupcakearmy%2Focculto","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcupcakearmy%2Focculto/lists"}