{"id":18345414,"url":"https://github.com/jsxc/omemo.js","last_synced_at":"2025-04-09T22:28:33.828Z","repository":{"id":76924413,"uuid":"91450276","full_name":"jsxc/omemo.js","owner":"jsxc","description":null,"archived":false,"fork":false,"pushed_at":"2017-06-11T22:28:42.000Z","size":504,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-02-15T14:24:17.579Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jsxc.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2017-05-16T11:23:44.000Z","updated_at":"2024-11-11T15:18:14.000Z","dependencies_parsed_at":null,"dependency_job_id":"d59d2e59-edd8-4d09-9619-c9b7cc743e1b","html_url":"https://github.com/jsxc/omemo.js","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jsxc%2Fomemo.js","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jsxc%2Fomemo.js/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jsxc%2Fomemo.js/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jsxc%2Fomemo.js/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jsxc","download_url":"https://codeload.github.com/jsxc/omemo.js/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248122480,"owners_count":21051288,"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":[],"created_at":"2024-11-05T21:08:10.492Z","updated_at":"2025-04-09T22:28:33.808Z","avatar_url":"https://github.com/jsxc.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"Overview\n--------\n`fsec` is derived from `forward-secrecy`\n\n\u003e `forward-secrecy` is a simple implementation of the Axolotl key-ratcheting protocol written in Javascript. It uses NaCl (in this case, [TweetNacl](https://github.com/dchest/tweetnacl-js)) for encryption, meaning sessions are secured with Curve25519 keys and Salsa20 encryption.\nwhich can be found @ https://github.com/alax/forward-secrecy\n\n`fsec` aims to become a fully contained, easy to read, test and expand, implementation of the omemo protocol.\n\nMilestones\n--------\n\n**current:**\n \n* 8-10 june 2017:  forward-secrecy forked, built and tested \n* 11 june 2017: reading axolotl/olm spec as well as further omemo protocol inspection to identify missing pieces\n```diff\n- encountered Error with node-machine-id package - see output:  https://gist.github.com/Shokodemon/5148d0dafb27fa6427cbc28c52ee8416\n+ must fix package before proceeding so that we can grab a deviceId for omemo\n+ 18:00 forking, fixing and sending a pull request.\n+ 20:00 issue fixed, sent a pull request to author.\n```\n**upcoming**\n\n* 11-18 june 2017: fsec gets prepared to implement omemo by creating a skeleton of missing functions between axolotl/olm and omemo.\n\n**future 1**\n19 june onwards\n\n* implementing said functions\n\n**future 2**\n\n* implementing tests for the added functions\n\n**future 3**\n\n* adding xmpp layer, look into the possibility of protocol modularity to see if an omemo session can benefit something else other than xmpp.\n\nprojected preliminary completion date\n----------\naugust 30th.\n\nfuture of fsec\n----------\n\n* solicit auditing to make sure fsec is safe for critical applications\n* module maintenance\n* move from pbkdf2-sha256 to pbkdf2 node module in order to use sha512 hmac.\n* maintenance as open source project\n* maintenance as a crypto pedagogical resource\n\nes6-plato output on the project @ june 2017\n---------\n```bash\nreport ---\u003e ModuleReport {\n  methodAggregate: \n   AggregateMethodReport {\n     methodAggregate: undefined,\n     cyclomatic: 52,\n     cyclomaticDensity: 22.222,\n     halstead: \n      HalsteadData {\n        bugs: 4.827,\n        difficulty: 86.821,\n        effort: 1257319.965,\n        length: 1891,\n        time: 69851.109,\n        vocabulary: 202,\n        volume: 14481.678,\n        operands: [Object],\n        operators: [Object] },\n     params: 34,\n     sloc: { logical: 234, physical: 824 } },\n  settings: \n   { commonjs: false,\n     dependencyResolver: undefined,\n     forin: false,\n     logicalor: true,\n     switchcase: true,\n     trycatch: false,\n     newmi: false },\n  classes: \n   [ ClassReport {\n       methodAggregate: [Object],\n       errors: [],\n       lineEnd: 824,\n       lineStart: 4,\n       methods: [Object],\n       methodAverage: [Object],\n       name: '\u003canonymous\u003e',\n       maintainability: 110.608 } ],\n  dependencies: \n   [ { line: 1, path: 'tweetnacl', type: 'esm' },\n     { line: 2, path: './utils', type: 'esm' } ],\n  errors: [],\n  filePath: undefined,\n  lineEnd: 824,\n  lineStart: 1,\n  maintainability: 110.608,\n  methods: [],\n  methodAverage: \n   MethodAverage {\n     cyclomatic: 2.417,\n     cyclomaticDensity: 45.861,\n     halstead: \n      HalsteadAverage {\n        bugs: 0.091,\n        difficulty: 6.356,\n        effort: 6330.063,\n        length: 50.972,\n        time: 351.67,\n        vocabulary: 17.417,\n        volume: 273.224,\n        operands: [Object],\n        operators: [Object] },\n     params: 0.944,\n     sloc: { logical: 6.472, physical: 28.5 } },\n  srcPath: undefined,\n  srcPathAlias: undefined,\n  module: 'src/index.js',\n  aggregate: \n   { complexity: \n      { methodAggregate: undefined,\n        cyclomatic: 52,\n        cyclomaticDensity: 22.222,\n        halstead: [Object],\n        params: 34,\n        sloc: [Object] } },\n  functions: [] }\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjsxc%2Fomemo.js","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjsxc%2Fomemo.js","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjsxc%2Fomemo.js/lists"}