You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat: implement complete WebAssembly component signing with wasmsign2
Add comprehensive cryptographic signing support for WebAssembly components using
wasmsign2, enabling secure component distribution and verification workflows.
This implementation provides:
- **Complete toolchain integration**: wasmsign2 built from source with cross-platform
support for Linux, macOS, and Windows
- **Core signing rules**: wasm_keygen for key generation, wasm_sign for component
signing, and wasm_verify for signature verification
- **Multiple signature formats**: Support for both embedded and detached signatures
- **Key format flexibility**: OpenSSH Ed25519 and compact key formats
- **Provider architecture**: WasmSignatureInfo and WasmKeyInfo providers for clean
data flow between signing operations
- **Enhanced validation**: Optional signature verification integrated into wasm_validate
- **Production features**: GitHub integration, partial verification, and comprehensive
error handling
The implementation follows Bazel-native patterns with hermetic builds, proper toolchain
abstraction, and cross-platform compatibility. All signing operations are integrated
seamlessly with the existing WasmComponentInfo provider system.
Example usage:
```starlark
wasm_keygen(name = "keys")
wasm_sign(name = "signed", component = ":my_component", keys = ":keys")
wasm_verify(name = "verified", signed_component = ":signed", keys = ":keys")
```
Includes comprehensive examples in //examples/wasm_signing demonstrating key generation,
component signing with both embedded and detached signatures, and verification workflows.
This enables secure WebAssembly component distribution with cryptographic guarantees
of component integrity and authenticity.
Co-Authored-By: Assistant <[email protected]>
0 commit comments