Dagger
Search

crypto

generation utilities. All operations run in pure Go inside the module
runtime — 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@d38cd46573b89a2722fb888c91ced6495d6825e9

Entrypoint

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-key
func (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-key
func (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-key
func (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-key
func (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
NameTypeDefault ValueDescription
bitsInteger !4096No description provided
Example
dagger -m github.com/z5labs/devex/daggerverse/crypto@d38cd46573b89a2722fb888c91ced6495d6825e9 call \
 generate-rsa-key --bits integer
func (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
NameTypeDefault ValueDescription
fileFile !-No description provided
Example
dagger -m github.com/z5labs/devex/daggerverse/crypto@d38cd46573b89a2722fb888c91ced6495d6825e9 call \
 sha-2-5-6 --file file:path
func (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
NameTypeDefault ValueDescription
fileFile !-No description provided
Example
dagger -m github.com/z5labs/devex/daggerverse/crypto@d38cd46573b89a2722fb888c91ced6495d6825e9 call \
 sha-3-8-4 --file file:path
func (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
NameTypeDefault ValueDescription
fileFile !-No description provided
Example
dagger -m github.com/z5labs/devex/daggerverse/crypto@d38cd46573b89a2722fb888c91ced6495d6825e9 call \
 sha-3-2-5-6 --file file:path
func (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
NameTypeDefault ValueDescription
fileFile !-No description provided
Example
dagger -m github.com/z5labs/devex/daggerverse/crypto@d38cd46573b89a2722fb888c91ced6495d6825e9 call \
 sha-3-5-1-2 --file file:path
func (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
NameTypeDefault ValueDescription
fileFile !-No description provided
Example
dagger -m github.com/z5labs/devex/daggerverse/crypto@d38cd46573b89a2722fb888c91ced6495d6825e9 call \
 sha-5-1-2 --file file:path
func (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 \
 der
func (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-key
func (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 \
 pem
func (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-der
func (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-pem
func (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 \
 der
func (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-key
func (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 \
 pem
func (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-der
func (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-pem
func (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 \
 der
func (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-key
func (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 \
 pem
func (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-der
func (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-pem
func (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()
}