{"id":24325753,"url":"https://github.com/zanderlewis/laqf-2","last_synced_at":"2025-09-27T09:31:57.434Z","repository":{"id":271300469,"uuid":"913011368","full_name":"zanderlewis/laqf-2","owner":"zanderlewis","description":null,"archived":false,"fork":false,"pushed_at":"2025-01-06T21:46:35.000Z","size":0,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-06T21:59:47.022Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Rust","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/zanderlewis.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":"2025-01-06T21:11:43.000Z","updated_at":"2025-01-06T21:44:23.000Z","dependencies_parsed_at":"2025-01-06T21:59:50.163Z","dependency_job_id":"7015a2f6-683a-46ac-a8ae-5cf2f67311f9","html_url":"https://github.com/zanderlewis/laqf-2","commit_stats":null,"previous_names":["zanderlewis/laqf-2"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zanderlewis%2Flaqf-2","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zanderlewis%2Flaqf-2/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zanderlewis%2Flaqf-2/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zanderlewis%2Flaqf-2/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zanderlewis","download_url":"https://codeload.github.com/zanderlewis/laqf-2/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":234423581,"owners_count":18830407,"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":"2025-01-17T20:19:57.465Z","updated_at":"2025-09-27T09:31:52.179Z","avatar_url":"https://github.com/zanderlewis.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# LAQ-Fort v2\n## Description\nLaqf2 is a hybrid encryption scheme that combines Kyber and AES-GCM with Argon2 and HMAC-SHA256. It also employs encoding data to Mandelbrot points for more secure encryption.\n\n\nIt is also the second version of the LAQ-Fort (Lattice Authenticated Quantum Fortress, an originally messy crate) encryption scheme.\n\n## Methods\n- `new()`: Create a new Laqf2 instance.\n- `generate_salt() -\u003e Vec\u003cu8\u003e`: Generate a random salt.\n- `generate_kyber_keypair() -\u003e (PublicKey, SecretKey)`: Generate a Kyber keypair.\n- `encrypt(data: \u0026[u8], password: \u0026str, pk: \u0026PublicKey, salt: \u0026[u8]) -\u003e Vec\u003cu8\u003e`: Encrypt data using Kyber and AES-GCM.\n- `decrypt(encrypted_data: \u0026[u8], password: \u0026str, sk: \u0026SecretKey, salt: \u0026[u8]) -\u003e Vec\u003cu8\u003e`: Decrypt data using Kyber and AES-GCM.\n\n## Example\n```rust\nuse laqf2::Laqf2;\n\nfn main() {\n    let laqf = Laqf2::new();\n    let (pk, sk) = laqf.generate_kyber_keypair();\n\n    let data = b\"Hello, world!\";\n    let password = \"password\";\n    let salt = laqf.generate_salt();\n\n    let encrypted_data = laqf.encrypt(data, password, \u0026pk, \u0026salt);\n    let decrypted_data = laqf.decrypt(\u0026encrypted_data, password, \u0026sk, \u0026salt);\n\n    assert_eq!(data, decrypted_data.as_slice());\n}\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzanderlewis%2Flaqf-2","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzanderlewis%2Flaqf-2","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzanderlewis%2Flaqf-2/lists"}