{"id":25237998,"url":"https://github.com/vspaz/rsa-encrypt-decrypt-rs","last_synced_at":"2025-10-26T12:30:52.841Z","repository":{"id":152011620,"uuid":"582166421","full_name":"vspaz/rsa-encrypt-decrypt-rs","owner":"vspaz","description":"A Rust lib to encrypt/decrypt data with RSA public/private key pair and do base85/base64 encoding/decoding.","archived":false,"fork":false,"pushed_at":"2025-01-09T20:57:13.000Z","size":23,"stargazers_count":5,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-09T21:33:12.508Z","etag":null,"topics":["base64","base64-decoding","base64-encoding","base64decode","base64encode","base85","rsa","rsa-cryptography","rsa-encryption","rsa-key-encryption","rust","rust-library"],"latest_commit_sha":null,"homepage":"","language":"Rust","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/vspaz.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":"2022-12-26T00:13:45.000Z","updated_at":"2025-01-09T20:56:38.000Z","dependencies_parsed_at":"2023-09-13T03:46:17.394Z","dependency_job_id":"d6dd14ef-1dc3-4afa-987b-f9fce6291de7","html_url":"https://github.com/vspaz/rsa-encrypt-decrypt-rs","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vspaz%2Frsa-encrypt-decrypt-rs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vspaz%2Frsa-encrypt-decrypt-rs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vspaz%2Frsa-encrypt-decrypt-rs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vspaz%2Frsa-encrypt-decrypt-rs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vspaz","download_url":"https://codeload.github.com/vspaz/rsa-encrypt-decrypt-rs/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238324678,"owners_count":19453140,"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":["base64","base64-decoding","base64-encoding","base64decode","base64encode","base85","rsa","rsa-cryptography","rsa-encryption","rsa-key-encryption","rust","rust-library"],"created_at":"2025-02-11T16:03:04.846Z","updated_at":"2025-10-26T12:30:52.481Z","avatar_url":"https://github.com/vspaz.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# rsa-encrypt-decrypt-rust\n\na small library to encrypt/decrypt data with RSA public/private key pair and base64/85 encoding/decoding capabilities.\n\nyou can generate your own key pair as:\n\n### Generating test public/private RSA key-pair.\n\n```shell\nopenssl genrsa -out private.pem 2048\nopenssl rsa -in private.pem -out public.pem -pubout -outform PEM\n```\n\n### Usage example\n\n```rust\nconst TEST_PRIVATE_KEY: \u0026str = \"-----BEGIN RSA PRIVATE KEY-----\nMIIEowIBAAKCAQEAxGDcSAjiHKP9v2ITR+BjQmt9Tx2zW08ZyrjOxPew+Gxl2m5z\nJyoP8sicZV81BeMNFkMg6q7sMtRXHhX1nFiTql5HBIqhZohYlN3LIXK2bdPWpDtt\nrOFXfsSbZ4Wqy3XhXBhiPNn3kkkRv1N5L/IYcdrxwqaqvTlJzOeQnDsd3+AmkYst\nuD4rgElOFkcUawtF7lKIYYFi42cYkJo51UD460mYieBezP6dZhFZB56pZ2rV8cQU\nNrUQy2llpj+PxX/yhGnYI88ij0FST0gI2l4UsjtwXVB1Y2SxqrhNMdBU7W6ZA8WU\nQQidr4MBxEFoujsLjaCl8LMsbEpAAilKezwubQIDAQABAoIBAFgkwbrzgcopMXP9\nqXnRlbvyU0R3qFGLp5/+Y5C1PJHE1dK9UKJ7lrz6nnhBy6Lgzrb3Wob8DLij5pZy\ndNPATkdiGa5IKznCaUAobUyOGKQjOWxt4ESAwKz9wmMs9ARu3MBhkXaOvzjB411l\nMjf7Ck3QYENmW6yjUiTOq3H0duxM/rn1Y88a9z2+aoWXQTltWvu0qKfb8SsqKzzx\nHQFSalgNUxIqs+NoHRAT4ygzGGgipdP2/gXA966UonYuFAkpkutCeKVd7/6dMbm8\nbgnr/x6ivGeLkbIaVkHNPRU+P4SYX1/XZohYIkTbggIih2aeH6+lEka8yZURANI6\nHSUwLAECgYEA4bfavKu12NiIUO75/ZcqF8ojXq5+7HXP59t5X5MrURj2jizWs8YH\nvPdrvYqxQNMZ0U0ZQBdAUWCn0Z11OXEak7YpKP78yoLIw2YnhgLVFvp3xZ+pIjjN\nyidWbIvoq8SLMiUYHrMy3lMwVyFjM/AuA6bqNffCbHXqs9Ut+WnDN6ECgYEA3rlZ\nS1gnE0sJrAJQ/5FnKgY/+TP6p+/k1SmRahNxYqpdP2t4CSwtYvjExRYcZefWFV1V\nG04KvFuKf4p9zasYnISvWV735KU++li/QEw0LrVzXcnoRXiZwXauQzYQI6tuMYmc\nNQRGBma3R7lQ/93YV3+hdubG+VCUsAC/B42zk00CgYAJ8zngQU2F3p27u50nkadY\nXx/KB7UupU7h8KncDbfGHmyX/eAFEsC6ksmcFGYV7nhf4p8vVRcPv0wGkINfYd4D\nDu+nj/4Cy1sgSfuKC8vq9GWdP5mMGabwt2U26b/6+nIMZtg2Wj3u0Qn7fUxLONY+\ncPg4ItDeSSBshwQ8z228oQKBgGyXL/s1OrAEaO3Nn1JLwWHS9EP7XN2ecBKiFr0C\nR8kUSSyPqFHIkURtB/sTobrpww5dmA4dCcz2UNuIWXf6UKCXbKsFS5XWH5ONy4l8\n3gBcBaiXtcCRYV3bEHHCnTHW9n3+mwOaVs3uLLQynVRzBHT8zGudbyvFZwk9A+aZ\n5xENAoGBALO842ymiZmFYiv9CIdfBGFokbokQMci+4cJm4wWzxEiDjAzSglRHAei\n/+oGBiPm8mKmx/dcU408x4PK76JlfduuoXuzE9jEmx46kwU4jGDS1GZYkwjGVPY8\n8UmZ7fFkjNFJH0Rh5y+tmoFyou3FsWzL2lpd1mIryAH2LR3PGE/t\n-----END RSA PRIVATE KEY-----\";\n```\n\n```rust\n\nconst TEST_PUBLIC_KEY: \u0026str = \"-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxGDcSAjiHKP9v2ITR+Bj\nQmt9Tx2zW08ZyrjOxPew+Gxl2m5zJyoP8sicZV81BeMNFkMg6q7sMtRXHhX1nFiT\nql5HBIqhZohYlN3LIXK2bdPWpDttrOFXfsSbZ4Wqy3XhXBhiPNn3kkkRv1N5L/IY\ncdrxwqaqvTlJzOeQnDsd3+AmkYstuD4rgElOFkcUawtF7lKIYYFi42cYkJo51UD4\n60mYieBezP6dZhFZB56pZ2rV8cQUNrUQy2llpj+PxX/yhGnYI88ij0FST0gI2l4U\nsjtwXVB1Y2SxqrhNMdBU7W6ZA8WUQQidr4MBxEFoujsLjaCl8LMsbEpAAilKezwu\nbQIDAQAB\n-----END PUBLIC KEY-----\";\n```\n\n### Encrypting \u0026 Decrypting text with RSA key pair\n\n```rust\nuse crate::cryptolib::decoder::Decoder;\nuse crate::cryptolib::encoder::Encoder;\n\n\nfn main() {\n    let text = \"some text data\";\n    \n    let encoder = Encoder::new(TEST_PUBLIC_KEY);\n    let encrypted_text = encoder.encrypt(text);\n\n    let decoder = Decoder::new(TEST_PRIVATE_KEY);\n    let decrypted_text = decoder.decrypt(encrypted_text);\n\n    assert_eq!(text, decrypted_text);\n}\n\n```\n\n### Encryption/Decryption with RSA key pair \u0026 base85 encoding/decoding\n\n```rust\nuse crate::cryptolib::decoder::Decoder;\nuse crate::cryptolib::encoder::Encoder;\n\n\nfn main() {\n    let text = \"some text data\";\n    \n    let encoder = Encoder::new(TEST_PUBLIC_KEY);\n    let encrypted_text = encoder.encrypt(text);\n    let base_85_encoded_text = Encoder::to_base85(encrypted_text);\n    \n    let base85_decoded_text = Decoder::from_base85(base_85_encoded_text);\n    let decoder = Decoder::new(TEST_PRIVATE_KEY);\n    let decrypted_text = decoder.decrypt(base85_decoded_text);\n\n    assert_eq!(text, decrypted_text);\n    println!(\"decrypted text: {}\", decrypted_text);\n}\n```\n\n### base85 encoding/decoding.\n\n```rust\nuse crate::cryptolib::decoder::Decoder;\nuse crate::cryptolib::encoder::Encoder;\n\n\nfn main() {\n    let text = Encoder::to_base85(b\"foobar\".to_vec());\n    let decoded_text = Decoder::from_base85(text);\n    assert_eq!(b\"foobar\".to_vec(), decoded_text);\n}\n```\n\n### base64 encoding/decoding.\n\n```rust\nuse crate::cryptolib::decoder::Decoder;\nuse crate::cryptolib::encoder::Encoder;\n\n\nfn main() {\n    let text = Encoder::to_base64(b\"foobar\".to_vec());\n    let decoded_text = Decoder::from_base64(text);\n    assert_eq!(b\"foobar\".to_vec(), decoded_text);\n}\n```\n\n**NOTE**: please refer to:\n* [rsa-encrypt-decrypt-golang](https://github.com/vspaz/rsa-encrypt-decrypt-golang) for the Go lib\n* [rsa-encrypt-decrypt-python](https://github.com/vspaz/rsa-encrypt-decrypt-python) for the Python lib","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvspaz%2Frsa-encrypt-decrypt-rs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvspaz%2Frsa-encrypt-decrypt-rs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvspaz%2Frsa-encrypt-decrypt-rs/lists"}