crypto
generation utilities. All operations run in pure Go inside the moduleruntime — no helper containers or external tools — using `crypto/*` from
the standard library plus `golang.org/x/crypto/sha3` and
`golang.org/x/crypto/ssh` for SHA-3 hashing and OpenSSH public-key
formatting.
Installation
dagger install github.com/z5labs/devex/daggerverse/crypto@d38cd46573b89a2722fb888c91ced6495d6825e9Entrypoint
Return Type
Crypto Example
dagger -m github.com/z5labs/devex/daggerverse/crypto@d38cd46573b89a2722fb888c91ced6495d6825e9 call \
func (m *MyModule) Example() *dagger.Crypto {
return dag.
Crypto()
}@function
def example() -> dagger.Crypto:
return (
dag.crypto()
)@func()
example(): Crypto {
return dag
.crypto()
}Types
Crypto 🔗
Crypto provides hashing and key-generation utilities for use in pipelines. All operations execute in pure Go inside the module runtime — no helper containers or external tools.
generateEcdsaP256Key() 🔗
GenerateEcdsaP256Key generates a fresh ECDSA private key over the P-256 curve.
Return Type
EcdsaKey ! Example
dagger -m github.com/z5labs/devex/daggerverse/crypto@d38cd46573b89a2722fb888c91ced6495d6825e9 call \
generate-ecdsa-p-2-5-6-keyfunc (m *MyModule) Example() *dagger.CryptoEcdsaKey {
return dag.
Crypto().
GenerateEcdsaP256Key()
}@function
def example() -> dagger.CryptoEcdsaKey:
return (
dag.crypto()
.generate_ecdsa_p256_key()
)@func()
example(): CryptoEcdsaKey {
return dag
.crypto()
.generateEcdsaP256Key()
}generateEcdsaP384Key() 🔗
GenerateEcdsaP384Key generates a fresh ECDSA private key over the P-384 curve.
Return Type
EcdsaKey ! Example
dagger -m github.com/z5labs/devex/daggerverse/crypto@d38cd46573b89a2722fb888c91ced6495d6825e9 call \
generate-ecdsa-p-3-8-4-keyfunc (m *MyModule) Example() *dagger.CryptoEcdsaKey {
return dag.
Crypto().
GenerateEcdsaP384Key()
}@function
def example() -> dagger.CryptoEcdsaKey:
return (
dag.crypto()
.generate_ecdsa_p384_key()
)@func()
example(): CryptoEcdsaKey {
return dag
.crypto()
.generateEcdsaP384Key()
}generateEcdsaP521Key() 🔗
GenerateEcdsaP521Key generates a fresh ECDSA private key over the P-521 curve.
Return Type
EcdsaKey ! Example
dagger -m github.com/z5labs/devex/daggerverse/crypto@d38cd46573b89a2722fb888c91ced6495d6825e9 call \
generate-ecdsa-p-5-2-1-keyfunc (m *MyModule) Example() *dagger.CryptoEcdsaKey {
return dag.
Crypto().
GenerateEcdsaP521Key()
}@function
def example() -> dagger.CryptoEcdsaKey:
return (
dag.crypto()
.generate_ecdsa_p521_key()
)@func()
example(): CryptoEcdsaKey {
return dag
.crypto()
.generateEcdsaP521Key()
}generateEd25519Key() 🔗
GenerateEd25519Key generates a fresh Ed25519 private key.
Return Type
Ed25519Key ! Example
dagger -m github.com/z5labs/devex/daggerverse/crypto@d38cd46573b89a2722fb888c91ced6495d6825e9 call \
generate-ed-2-5-5-1-9-keyfunc (m *MyModule) Example() *dagger.CryptoEd25519Key {
return dag.
Crypto().
GenerateEd25519Key()
}@function
def example() -> dagger.CryptoEd25519Key:
return (
dag.crypto()
.generate_ed25519_key()
)@func()
example(): CryptoEd25519Key {
return dag
.crypto()
.generateEd25519Key()
}generateRsaKey() 🔗
GenerateRsaKey generates a fresh RSA private key of the requested size.
Return Type
RsaKey !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| bits | Integer ! | 4096 | No description provided |
Example
dagger -m github.com/z5labs/devex/daggerverse/crypto@d38cd46573b89a2722fb888c91ced6495d6825e9 call \
generate-rsa-key --bits integerfunc (m *MyModule) Example(bits int) *dagger.CryptoRsaKey {
return dag.
Crypto().
GenerateRsaKey(bits)
}@function
def example(bits: int) -> dagger.CryptoRsaKey:
return (
dag.crypto()
.generate_rsa_key(bits)
)@func()
example(bits: number): CryptoRsaKey {
return dag
.crypto()
.generateRsaKey(bits)
}sha256() 🔗
Sha256 returns the SHA-256 hex digest of file.
Return Type
String !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| file | File ! | - | No description provided |
Example
dagger -m github.com/z5labs/devex/daggerverse/crypto@d38cd46573b89a2722fb888c91ced6495d6825e9 call \
sha-2-5-6 --file file:pathfunc (m *MyModule) Example(ctx context.Context, file *dagger.File) string {
return dag.
Crypto().
Sha256(ctx, file)
}@function
async def example(file: dagger.File) -> str:
return await (
dag.crypto()
.sha256(file)
)@func()
async example(file: File): Promise<string> {
return dag
.crypto()
.sha256(file)
}sha384() 🔗
Sha384 returns the SHA-384 hex digest of file.
Return Type
String !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| file | File ! | - | No description provided |
Example
dagger -m github.com/z5labs/devex/daggerverse/crypto@d38cd46573b89a2722fb888c91ced6495d6825e9 call \
sha-3-8-4 --file file:pathfunc (m *MyModule) Example(ctx context.Context, file *dagger.File) string {
return dag.
Crypto().
Sha384(ctx, file)
}@function
async def example(file: dagger.File) -> str:
return await (
dag.crypto()
.sha384(file)
)@func()
async example(file: File): Promise<string> {
return dag
.crypto()
.sha384(file)
}sha3256() 🔗
Sha3_256 returns the SHA3-256 hex digest of file.
Return Type
String !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| file | File ! | - | No description provided |
Example
dagger -m github.com/z5labs/devex/daggerverse/crypto@d38cd46573b89a2722fb888c91ced6495d6825e9 call \
sha-3-2-5-6 --file file:pathfunc (m *MyModule) Example(ctx context.Context, file *dagger.File) string {
return dag.
Crypto().
Sha3256(ctx, file)
}@function
async def example(file: dagger.File) -> str:
return await (
dag.crypto()
.sha3256(file)
)@func()
async example(file: File): Promise<string> {
return dag
.crypto()
.sha3256(file)
}sha3512() 🔗
Sha3_512 returns the SHA3-512 hex digest of file.
Return Type
String !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| file | File ! | - | No description provided |
Example
dagger -m github.com/z5labs/devex/daggerverse/crypto@d38cd46573b89a2722fb888c91ced6495d6825e9 call \
sha-3-5-1-2 --file file:pathfunc (m *MyModule) Example(ctx context.Context, file *dagger.File) string {
return dag.
Crypto().
Sha3512(ctx, file)
}@function
async def example(file: dagger.File) -> str:
return await (
dag.crypto()
.sha3512(file)
)@func()
async example(file: File): Promise<string> {
return dag
.crypto()
.sha3512(file)
}sha512() 🔗
Sha512 returns the SHA-512 hex digest of file.
Return Type
String !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| file | File ! | - | No description provided |
Example
dagger -m github.com/z5labs/devex/daggerverse/crypto@d38cd46573b89a2722fb888c91ced6495d6825e9 call \
sha-5-1-2 --file file:pathfunc (m *MyModule) Example(ctx context.Context, file *dagger.File) string {
return dag.
Crypto().
Sha512(ctx, file)
}@function
async def example(file: dagger.File) -> str:
return await (
dag.crypto()
.sha512(file)
)@func()
async example(file: File): Promise<string> {
return dag
.crypto()
.sha512(file)
}EcdsaKey 🔗
EcdsaKey wraps a generated ECDSA keypair. See RsaKey for why each method carries `
der() 🔗
Return Type
File ! Example
dagger -m github.com/z5labs/devex/daggerverse/crypto@d38cd46573b89a2722fb888c91ced6495d6825e9 call \
generate-ecdsa-p-5-2-1-key \
derfunc (m *MyModule) Example() *dagger.File {
return dag.
Crypto().
GenerateEcdsaP521Key().
Der()
}@function
def example() -> dagger.File:
return (
dag.crypto()
.generate_ecdsa_p521_key()
.der()
)@func()
example(): File {
return dag
.crypto()
.generateEcdsaP521Key()
.der()
}openSshPublicKey() 🔗
Return Type
File ! Example
dagger -m github.com/z5labs/devex/daggerverse/crypto@d38cd46573b89a2722fb888c91ced6495d6825e9 call \
generate-ecdsa-p-5-2-1-key \
open-ssh-public-keyfunc (m *MyModule) Example() *dagger.File {
return dag.
Crypto().
GenerateEcdsaP521Key().
OpenSshPublicKey()
}@function
def example() -> dagger.File:
return (
dag.crypto()
.generate_ecdsa_p521_key()
.open_ssh_public_key()
)@func()
example(): File {
return dag
.crypto()
.generateEcdsaP521Key()
.openSshPublicKey()
}pem() 🔗
Return Type
File ! Example
dagger -m github.com/z5labs/devex/daggerverse/crypto@d38cd46573b89a2722fb888c91ced6495d6825e9 call \
generate-ecdsa-p-5-2-1-key \
pemfunc (m *MyModule) Example() *dagger.File {
return dag.
Crypto().
GenerateEcdsaP521Key().
Pem()
}@function
def example() -> dagger.File:
return (
dag.crypto()
.generate_ecdsa_p521_key()
.pem()
)@func()
example(): File {
return dag
.crypto()
.generateEcdsaP521Key()
.pem()
}publicKeyDer() 🔗
Return Type
File ! Example
dagger -m github.com/z5labs/devex/daggerverse/crypto@d38cd46573b89a2722fb888c91ced6495d6825e9 call \
generate-ecdsa-p-5-2-1-key \
public-key-derfunc (m *MyModule) Example() *dagger.File {
return dag.
Crypto().
GenerateEcdsaP521Key().
PublicKeyDer()
}@function
def example() -> dagger.File:
return (
dag.crypto()
.generate_ecdsa_p521_key()
.public_key_der()
)@func()
example(): File {
return dag
.crypto()
.generateEcdsaP521Key()
.publicKeyDer()
}publicKeyPem() 🔗
Return Type
File ! Example
dagger -m github.com/z5labs/devex/daggerverse/crypto@d38cd46573b89a2722fb888c91ced6495d6825e9 call \
generate-ecdsa-p-5-2-1-key \
public-key-pemfunc (m *MyModule) Example() *dagger.File {
return dag.
Crypto().
GenerateEcdsaP521Key().
PublicKeyPem()
}@function
def example() -> dagger.File:
return (
dag.crypto()
.generate_ecdsa_p521_key()
.public_key_pem()
)@func()
example(): File {
return dag
.crypto()
.generateEcdsaP521Key()
.publicKeyPem()
}Ed25519Key 🔗
Ed25519Key wraps a generated Ed25519 keypair. See RsaKey for why each method carries `
der() 🔗
Return Type
File ! Example
dagger -m github.com/z5labs/devex/daggerverse/crypto@d38cd46573b89a2722fb888c91ced6495d6825e9 call \
generate-ed-2-5-5-1-9-key \
derfunc (m *MyModule) Example() *dagger.File {
return dag.
Crypto().
GenerateEd25519Key().
Der()
}@function
def example() -> dagger.File:
return (
dag.crypto()
.generate_ed25519_key()
.der()
)@func()
example(): File {
return dag
.crypto()
.generateEd25519Key()
.der()
}openSshPublicKey() 🔗
Return Type
File ! Example
dagger -m github.com/z5labs/devex/daggerverse/crypto@d38cd46573b89a2722fb888c91ced6495d6825e9 call \
generate-ed-2-5-5-1-9-key \
open-ssh-public-keyfunc (m *MyModule) Example() *dagger.File {
return dag.
Crypto().
GenerateEd25519Key().
OpenSshPublicKey()
}@function
def example() -> dagger.File:
return (
dag.crypto()
.generate_ed25519_key()
.open_ssh_public_key()
)@func()
example(): File {
return dag
.crypto()
.generateEd25519Key()
.openSshPublicKey()
}pem() 🔗
Return Type
File ! Example
dagger -m github.com/z5labs/devex/daggerverse/crypto@d38cd46573b89a2722fb888c91ced6495d6825e9 call \
generate-ed-2-5-5-1-9-key \
pemfunc (m *MyModule) Example() *dagger.File {
return dag.
Crypto().
GenerateEd25519Key().
Pem()
}@function
def example() -> dagger.File:
return (
dag.crypto()
.generate_ed25519_key()
.pem()
)@func()
example(): File {
return dag
.crypto()
.generateEd25519Key()
.pem()
}publicKeyDer() 🔗
Return Type
File ! Example
dagger -m github.com/z5labs/devex/daggerverse/crypto@d38cd46573b89a2722fb888c91ced6495d6825e9 call \
generate-ed-2-5-5-1-9-key \
public-key-derfunc (m *MyModule) Example() *dagger.File {
return dag.
Crypto().
GenerateEd25519Key().
PublicKeyDer()
}@function
def example() -> dagger.File:
return (
dag.crypto()
.generate_ed25519_key()
.public_key_der()
)@func()
example(): File {
return dag
.crypto()
.generateEd25519Key()
.publicKeyDer()
}publicKeyPem() 🔗
Return Type
File ! Example
dagger -m github.com/z5labs/devex/daggerverse/crypto@d38cd46573b89a2722fb888c91ced6495d6825e9 call \
generate-ed-2-5-5-1-9-key \
public-key-pemfunc (m *MyModule) Example() *dagger.File {
return dag.
Crypto().
GenerateEd25519Key().
PublicKeyPem()
}@function
def example() -> dagger.File:
return (
dag.crypto()
.generate_ed25519_key()
.public_key_pem()
)@func()
example(): File {
return dag
.crypto()
.generateEd25519Key()
.publicKeyPem()
}RsaKey 🔗
RsaKey wraps a generated RSA keypair. The private key bytes live off the GraphQL surface and are materialized to a *dagger.File on demand. Each format method carries `chained query (`generateRsaKey.pem.contents`) by chain shape, so repeat invocations would return the first call's File even though the parent generator runs fresh. Forcing re-execution at every method node keeps every call genuinely fresh. Stored as PKCS#8 DER because the Dagger code generator only round-trips `[]byte` cleanly across runtime invocations — `*rsa.PrivateKey` directly would generate broken bindings.
der() 🔗
Return Type
File ! Example
dagger -m github.com/z5labs/devex/daggerverse/crypto@d38cd46573b89a2722fb888c91ced6495d6825e9 call \
generate-rsa-key --bits integer \
derfunc (m *MyModule) Example(bits int) *dagger.File {
return dag.
Crypto().
GenerateRsaKey(bits).
Der()
}@function
def example(bits: int) -> dagger.File:
return (
dag.crypto()
.generate_rsa_key(bits)
.der()
)@func()
example(bits: number): File {
return dag
.crypto()
.generateRsaKey(bits)
.der()
}openSshPublicKey() 🔗
Return Type
File ! Example
dagger -m github.com/z5labs/devex/daggerverse/crypto@d38cd46573b89a2722fb888c91ced6495d6825e9 call \
generate-rsa-key --bits integer \
open-ssh-public-keyfunc (m *MyModule) Example(bits int) *dagger.File {
return dag.
Crypto().
GenerateRsaKey(bits).
OpenSshPublicKey()
}@function
def example(bits: int) -> dagger.File:
return (
dag.crypto()
.generate_rsa_key(bits)
.open_ssh_public_key()
)@func()
example(bits: number): File {
return dag
.crypto()
.generateRsaKey(bits)
.openSshPublicKey()
}pem() 🔗
Return Type
File ! Example
dagger -m github.com/z5labs/devex/daggerverse/crypto@d38cd46573b89a2722fb888c91ced6495d6825e9 call \
generate-rsa-key --bits integer \
pemfunc (m *MyModule) Example(bits int) *dagger.File {
return dag.
Crypto().
GenerateRsaKey(bits).
Pem()
}@function
def example(bits: int) -> dagger.File:
return (
dag.crypto()
.generate_rsa_key(bits)
.pem()
)@func()
example(bits: number): File {
return dag
.crypto()
.generateRsaKey(bits)
.pem()
}publicKeyDer() 🔗
Return Type
File ! Example
dagger -m github.com/z5labs/devex/daggerverse/crypto@d38cd46573b89a2722fb888c91ced6495d6825e9 call \
generate-rsa-key --bits integer \
public-key-derfunc (m *MyModule) Example(bits int) *dagger.File {
return dag.
Crypto().
GenerateRsaKey(bits).
PublicKeyDer()
}@function
def example(bits: int) -> dagger.File:
return (
dag.crypto()
.generate_rsa_key(bits)
.public_key_der()
)@func()
example(bits: number): File {
return dag
.crypto()
.generateRsaKey(bits)
.publicKeyDer()
}publicKeyPem() 🔗
Return Type
File ! Example
dagger -m github.com/z5labs/devex/daggerverse/crypto@d38cd46573b89a2722fb888c91ced6495d6825e9 call \
generate-rsa-key --bits integer \
public-key-pemfunc (m *MyModule) Example(bits int) *dagger.File {
return dag.
Crypto().
GenerateRsaKey(bits).
PublicKeyPem()
}@function
def example(bits: int) -> dagger.File:
return (
dag.crypto()
.generate_rsa_key(bits)
.public_key_pem()
)@func()
example(bits: number): File {
return dag
.crypto()
.generateRsaKey(bits)
.publicKeyPem()
}