{"id":13542808,"url":"https://github.com/saga420/temporal-encryption-converter","last_synced_at":"2026-01-11T22:46:33.722Z","repository":{"id":180322250,"uuid":"664874793","full_name":"saga420/temporal-encryption-converter","owner":"saga420","description":"Temporal Encryption Converter is a Go package enabling robust encryption, decryption, and context propagation within Temporal workflows. The package employs asymmetric cryptography, sophisticated encryption algorithms, and pre-encryption ZLib compression for optimal security and efficiency.","archived":false,"fork":false,"pushed_at":"2023-07-13T07:46:12.000Z","size":101,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-02T12:38:48.498Z","etag":null,"topics":["encryption","golang","temporal"],"latest_commit_sha":null,"homepage":"","language":"Go","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/saga420.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}},"created_at":"2023-07-11T00:31:52.000Z","updated_at":"2024-02-22T08:54:51.000Z","dependencies_parsed_at":"2024-01-16T17:02:23.782Z","dependency_job_id":"f6749e69-478e-4f0c-80cf-85d2631e6fff","html_url":"https://github.com/saga420/temporal-encryption-converter","commit_stats":null,"previous_names":["saga420/temporal-encryption-converter"],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/saga420/temporal-encryption-converter","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/saga420%2Ftemporal-encryption-converter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/saga420%2Ftemporal-encryption-converter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/saga420%2Ftemporal-encryption-converter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/saga420%2Ftemporal-encryption-converter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/saga420","download_url":"https://codeload.github.com/saga420/temporal-encryption-converter/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/saga420%2Ftemporal-encryption-converter/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28326144,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-11T22:11:01.104Z","status":"ssl_error","status_checked_at":"2026-01-11T22:10:58.990Z","response_time":60,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["encryption","golang","temporal"],"created_at":"2024-08-01T11:00:18.145Z","updated_at":"2026-01-11T22:46:33.709Z","avatar_url":"https://github.com/saga420.png","language":"Go","funding_links":[],"categories":["Go"],"sub_categories":["Libraries"],"readme":"[![Go Report Card][go-report-image]][go-report-url]\n[![Go Reference](https://pkg.go.dev/badge/github.com/saga420/temporal-encryption-converter.svg)](https://pkg.go.dev/github.com/saga420/temporal-encryption-converter)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![Codecov](https://codecov.io/gh/saga420/temporal-encryption-converter/branch/main/graph/badge.svg)](https://codecov.io/gh/saga420/temporal-encryption-converter)\n\n[go-report-image]: https://goreportcard.com/badge/github.com/saga420/temporal-encryption-converter\n[go-report-url]: https://goreportcard.com/report/github.com/saga420/temporal-encryption-converter\n\n[go-report-image]: https://goreportcard.com/badge/github.com/saga420/temporal-encryption-converter\n[go-report-url]: https://goreportcard.com/report/github.com/saga420/temporal-encryption-converter\n\n\n# Temporal Encryption Converter\n\nThe Temporal Encryption Converter is a Go package designed to deliver encryption and decryption solutions for payloads\nwithin the Temporal workflow engine. The package incorporates a unique context propagator, enabling the transmission of\ncontext values across multiple workflows.\n\n## Installation\n\nInstall the package with the go get command:\n\n```bash\ngo get github.com/saga420/temporal-encryption-converter\n```\n\n## Usage\n\n\u003e SEE example/*.go for more examples\n\n```go\n// Generate a key pair for the client\nclient, _ := encryption.GenerateKeyPair()\nfmt.Println(\"Client's Private Key: \", client.PrivateKey)\nfmt.Println(\"Client's Public Key: \", client.PublicKey)\n\n// Generate a key pair for the worker\nworker, _ := encryption.GenerateKeyPair()\nfmt.Println(\"Worker's Private Key: \", worker.PrivateKey)\nfmt.Println(\"Worker's Public Key: \", worker.PublicKey)\n```\n\nThe X25519 algorithm is used for key exchange. Before initiating a workflow, the client must possess knowledge of the\nworker's public key, which is essential for encrypting data intended solely for that worker to decrypt and process.\n\nIntriguingly, it's not required for the worker to preconfigure the client's public key. This key is conveyed within the\ncontext metadata of the workflow, allowing any client (each potentially with different key pairs) to transmit encrypted\ndata to the worker using the worker's public key. The worker can subsequently receive and process workflow messages from\nany client, promoting a flexible and secure communication system.\n\nNote: Error handling is critical in production code. While errors are omitted for brevity in these examples, in a\nproduction environment, it's crucial to always check and handle errors effectively.\n\n## Features\n\n- Empowers payload encryption and decryption in Temporal workflows.\n- Implements AES256_GCM_PBKDF2_Curve25519 and XChaCha20_Poly1305_PBKDF2_Curve25519 encryption algorithms.\n- Supports ZLib compression pre-encryption for payload size optimization.\n- Facilitates passing of context values across diverse workflows.\n\n## Contributing\n\nWe warmly welcome contributions. Kindly fork the repository and submit a pull request with your amendments.\n\n## License\n\nThis package is distributed under the terms of the MIT License.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsaga420%2Ftemporal-encryption-converter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsaga420%2Ftemporal-encryption-converter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsaga420%2Ftemporal-encryption-converter/lists"}