{"id":21465995,"url":"https://github.com/mp81ss/rss","last_synced_at":"2025-03-17T05:46:00.865Z","repository":{"id":194978243,"uuid":"431898463","full_name":"mp81ss/rss","owner":"mp81ss","description":"Javascript cryptographic library for websites compatible with very old browsers based on GOST standards","archived":false,"fork":false,"pushed_at":"2023-09-15T10:28:10.000Z","size":18,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-23T15:23:01.802Z","etag":null,"topics":["cipher","es3","gost","hash","hash-algorithm","ie7","ie8","ie8-compat","internet-explorer","javascript","javascript-library","js","magma","msie"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","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/mp81ss.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}},"created_at":"2021-11-25T15:46:27.000Z","updated_at":"2023-04-25T09:58:49.000Z","dependencies_parsed_at":"2023-09-16T03:21:29.564Z","dependency_job_id":null,"html_url":"https://github.com/mp81ss/rss","commit_stats":null,"previous_names":["mp81ss/rss"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mp81ss%2Frss","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mp81ss%2Frss/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mp81ss%2Frss/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mp81ss%2Frss/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mp81ss","download_url":"https://codeload.github.com/mp81ss/rss/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243982138,"owners_count":20378606,"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":["cipher","es3","gost","hash","hash-algorithm","ie7","ie8","ie8-compat","internet-explorer","javascript","javascript-library","js","magma","msie"],"created_at":"2024-11-23T08:12:47.089Z","updated_at":"2025-03-17T05:46:00.848Z","avatar_url":"https://github.com/mp81ss.png","language":"JavaScript","readme":"# ARCHIVED - Moved to gitlab\n\n\n# Russian-secured-site\n\n## Introduction\nIt is a *javascript* cryptography library offering a symmetric cipher and a hashing algorithm\\\nThe encryption algorithm is [**GOST 28147-89**](https://en.wikipedia.org/wiki/GOST_(block_cipher))\\\nThe hash algorithm is [**GOST R 34.11-94**](https://en.wikipedia.org/wiki/GOST_(hash_function)) in two variants: *standard* and *crypto*, see details below\n\n## Details\nThe cipher (called *magma*) is implemented with updated sbox from **RFC 8891** in **CBC** mode\n\nThe hash function is available in two variants:\n - Standard variant (with sbox from **RFC 4351**), commonly called *GOST*\n - The *CryptoPro* variant, implemented with sbox suggested by [CryptoPro company](https://www.cryptopro.ru) in **RFC 4357**, commonly called *gost-crypto*\n\n## Usage\n### Cipher\nThe cipher offers two functions:\n - *encrypt*\n - *decrypt*\n\nThe *encrypt* function takes a string (plaintext) and the key, (can be an array of **8** integers or a hexadecimal string of length **64**)\\\nThe *decrypt* function takes the ciphertext (a string returned by *encrypt*) and the key\\\n*Note*: There is **no way** to know if decryption was correct, you have to verify it\n``` html\n\u003cscript type='text/javascript' src='gost.js'\u003e\u003c/script\u003e\n```\n``` js\nvar pt = 'gost';\nvar key = [0, 1, 2, 3, 4, 5, 6, 7];\nvar ct = GostCipher.encrypt(pt, key);\nvar secret = GostCipher.decrypt(ct, key);\nif (secret != pt) {\n  alert('gost cipher failed');\n}\n```\n### Hash\nThere are two public functions, both take a string and return its hash as string. Functions are:\n - *hash* (standard version)\n - *hashCrypto* (CryptoPro version)\n``` html\n\u003cscript type='text/javascript' src='gost_hash.js'\u003e\u003c/script\u003e\n```\n``` js\nconsole.log(GostHash.hashCrypto('')); // Write the gost-crypto hash of the empty string\nconsole.log(GostHash.hash('hello world'));  // Write the gost hash of the 'hello wordl' string\n```\n*Notes*:\n - Hash and cipher are independent, so you can use only one if needed\n - See [test file](test/gost_test.html) for code example\n\n## Compatibility\nYou can find a richer and better alternative cryptographic libraries for your site\\\nBut you won't find many solutions compliant with **ECMAScript 3**\\\nRSS has been tested with most modern browsers down to **MSIE7**\\\nso you shouldn't have any compatibility issues!\n\n## Security\nShort explanation: you can trust\n\nLong explanation:\n\nCipher is considered *deeply flawed*, and known attacks are much better than brute-force, **but** still require a lot of resources.\\\nFor further details and references see links on [wikipedia page](https://en.wikipedia.org/wiki/GOST_(block_cipher)) in section *Cryptanalysis of GOST*\n\nHash algorithm is considered broken, but again the efforts required are far from practical.\\\nSee details in [this paper](https://doi.org/10.1007%2F978-3-540-85174-5_10)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmp81ss%2Frss","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmp81ss%2Frss","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmp81ss%2Frss/lists"}