{"id":26950541,"url":"https://github.com/formulae-org/package-cryptography-js","last_synced_at":"2025-08-04T14:32:54.570Z","repository":{"id":247326025,"uuid":"825124580","full_name":"formulae-org/package-cryptography-js","owner":"formulae-org","description":"Cryptography package for Fōrmulæ, in JavaScript","archived":false,"fork":false,"pushed_at":"2025-02-24T04:51:14.000Z","size":69,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-02T23:32:10.174Z","etag":null,"topics":["cryptographic-keys","cryptography","cryptography-algorithms","decryption","digital-signature","encryption","encryption-decryption","formulae","hash-digest","hashing","javascript","key-generation","rsa-cryptography","signature-verification","web-application","web-crypto-api"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/formulae-org.png","metadata":{"files":{"readme":"README.md","changelog":null,"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":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-07-06T21:11:37.000Z","updated_at":"2025-02-24T04:51:17.000Z","dependencies_parsed_at":"2024-07-08T05:24:24.941Z","dependency_job_id":"ccee62de-8af1-4b06-a47c-9b449e81639d","html_url":"https://github.com/formulae-org/package-cryptography-js","commit_stats":null,"previous_names":["formulae-org/package-cryptography-js"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/formulae-org/package-cryptography-js","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/formulae-org%2Fpackage-cryptography-js","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/formulae-org%2Fpackage-cryptography-js/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/formulae-org%2Fpackage-cryptography-js/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/formulae-org%2Fpackage-cryptography-js/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/formulae-org","download_url":"https://codeload.github.com/formulae-org/package-cryptography-js/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/formulae-org%2Fpackage-cryptography-js/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":268711236,"owners_count":24294751,"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","status":"online","status_checked_at":"2025-08-04T02:00:09.867Z","response_time":79,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["cryptographic-keys","cryptography","cryptography-algorithms","decryption","digital-signature","encryption","encryption-decryption","formulae","hash-digest","hashing","javascript","key-generation","rsa-cryptography","signature-verification","web-application","web-crypto-api"],"created_at":"2025-04-02T23:29:58.157Z","updated_at":"2025-08-04T14:32:54.432Z","avatar_url":"https://github.com/formulae-org.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# package-cryptography-js\n\nCryptography package for the [Fōrmulæ](https://formulae.org) programming language.\n\nFōrmulæ is also a software framework for visualization, edition and manipulation of complex expressions, from many fields. The code for an specific field —i.e. arithmetics— is encapsulated in a single unit called a Fōrmulæ **package**.\n\nThis repository contains the source code for the **cryptography package**. It is intended for generation of cryptographic keys, for ecryption and decryption, for hasing and to create signatures and verifying them.\n\nThe GitHub organization [formulae-org](https://github.com/formulae-org) encompasses the source code for the rest of packages, as well as the [web application](https://github.com/formulae-org/formulae-js).\n\n\u003c!-- Take a look at this [tutorial](https://formulae.org/?script=tutorials/Arithmetic) to know the capabilities of the Fōrmulæ arithmetic package. --\u003e\n\n### Description ###\n\nThe Fōrmulæ cryptography package is basically a wrapper of the Javascript [Web Crypto API](https://developer.mozilla.org/en-US/docs/Web/API/Web_Crypto_API).\n\n\u003e [!IMPORTANT]  \n\u003e [Web Crypto API](https://developer.mozilla.org/en-US/docs/Web/API/Web_Crypto_API) is a powerful, low-level cryptography suite which uses real cryptographic algorithms and parameters. This Fōrmulæ package is intended to provide a higher-level interface to users and programmers. However, as with [Web Crypto API](https://developer.mozilla.org/en-US/docs/Web/API/Web_Crypto_API), it is highly recommended that you have a medium to high knowledge of the cryptographic concepts and mathematical background to be used effectively in production.\n\u003e \n\u003e On the other hand, it is very suitable for educational purposes, but again, a basic to medium knowledge of cryptographic concepts is assumed.\n\n### Capabilities ###\n\n#### Key generation ####\n\n* Generation of asymmetric keys for encryption/decryption with the following algorithms:\n    * [RSA-OAEP](https://www.rfc-editor.org/rfc/rfc3447#section-7.1)\n\n* Generation of symmetric key for encryption/decryption with the following algorithms:\n    * [AES-CTR](https://w3c.github.io/webcrypto/#bib-nist-sp800-38a)\n    * [AES-CBC](https://w3c.github.io/webcrypto/#bib-nist-sp800-38a)\n    * [AES-GCM](https://w3c.github.io/webcrypto/#bib-nist-sp800-38d)\n\n* Generation of keys for signing/verification with the following algorithms:\n    * [RSASSA-PKCS1-v1_5](https://www.rfc-editor.org/rfc/rfc3447#section-8.2)\n    * [RSA-PSS](https://w3c.github.io/webcrypto/#bib-rfc3447)\n    * [ECDSA](https://w3c.github.io/webcrypto/#bib-rfc6090)\n    * [HMAC](https://w3c.github.io/webcrypto/#bib-fips-198-1)\n\n#### Key serialization ####\n\n\u003ctable\u003e\n\u003ctr\u003e\u003cth\u003eAlgorithm\u003cth\u003eKey type\u003cth\u003eUsage\u003cth\u003eKey serialization\n\u003ctr\u003e\u003ctd\u003eRSA-OAEP\u003ctd\u003ePrivate\u003ctd\u003eDecrypt\u003ctd rowspan=\"4\"\u003eBase64 format from their \u003ca href=\"https://en.wikipedia.org/wiki/PKCS_8\"\u003ePKCS #8 DER-encoded\u003c/a\u003e format\u003c/td\u003e\n\u003ctr\u003e\u003ctd\u003eRSASSA-PKCS1-v1_5\u003ctd\u003ePrivate\u003ctd\u003eSign\n\u003ctr\u003e\u003ctd\u003eRSA-PSS\u003ctd\u003ePrivate\u003ctd\u003eSign\n\u003ctr\u003e\u003ctd\u003eECDSA\u003ctd\u003ePrivate\u003ctd\u003eSign\n\u003ctr\u003e\u003ctd\u003eRSA-OAEP\u003ctd\u003ePublic\u003ctd\u003eEncrypt\u003ctd rowspan=\"4\"\u003eBase64 format from their \u003ca href=\"https://datatracker.ietf.org/doc/html/rfc5280#section-4.1)\"\u003eSubject Public Key Info (SPKI) DER-encoded\u003c/a\u003e format\u003c/td\u003e\n\u003ctr\u003e\u003ctd\u003eRSASSA-PKCS1-v1_5\u003ctd\u003ePublic\u003ctd\u003eVerify\n\u003ctr\u003e\u003ctd\u003eRSA-PSS\u003ctd\u003ePublic\u003ctd\u003eVerify\n\u003ctr\u003e\u003ctd\u003eECDSA\u003ctd\u003ePublic\u003ctd\u003eVerify\n\u003ctr\u003e\u003ctd\u003eAES-CTR\u003ctd\u003eSecret\u003ctd\u003eEncrypt / decrypt\u003ctd rowspan=\"5\"\u003eBase64 format from their raw bytes\u003c/td\u003e\n\u003ctr\u003e\u003ctd\u003eAES-CBC\u003ctd\u003eSecret\u003ctd\u003eEncrypt / decrypt\n\u003ctr\u003e\u003ctd\u003eAES-GCM\u003ctd\u003eSecret\u003ctd\u003eEncrypt / decrypt\n\u003ctr\u003e\u003ctd\u003eHMAC\u003ctd\u003ePrivate / public\u003ctd\u003eSign / verify\n\u003c/table\u003e\n\n#### Hashing ####\n\nSupported algorithms:\n* [SHA-1]()\n* [SHA-256]()\n* [SHA-384]()\n* [SHA-512]()\n\n#### Encryption\n\n* Encrypt operation\n* Decrypt operation\n\n#### Digital signatures ####\n\n* Generation of a digital signture\n* Verification of a digital signature\n\n#### Randon number generation\n\n* Pseudo-random number generation, but with enough entropy to be suitable for cryptographic purposes.\n* It creates a byte buffer of a given size.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fformulae-org%2Fpackage-cryptography-js","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fformulae-org%2Fpackage-cryptography-js","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fformulae-org%2Fpackage-cryptography-js/lists"}