Skip to content

Commit 74b5b1f

Browse files
DaughterOfMarsAlex6323
authored andcommitted
feat(crypto): Add ability to create a private key from a mnemonic (#347)
* feat(crypto): Add ability to create a private key from a mnemonic * clippy * allow passing password and path * fix mnemonic parsing and add example * bindings examples * clippy * add password and path to example * remove impls from `SimpleKeypair` * add tests and fix secp256 generation * split mnemonic methods * fix python example * use constant arrays
1 parent 9e10e10 commit 74b5b1f

File tree

21 files changed

+1233
-82
lines changed

21 files changed

+1233
-82
lines changed
Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
// Copyright (c) 2025 IOTA Stiftung
2+
// SPDX-License-Identifier: Apache-2.0
3+
4+
package main
5+
6+
import (
7+
"fmt"
8+
"log"
9+
10+
sdk "bindings/iota_sdk_ffi"
11+
)
12+
13+
const MNEMONIC = "round attack kitchen wink winter music trip tiny nephew hire orange what"
14+
15+
func main() {
16+
privateKeyEd25519, err := sdk.Ed25519PrivateKeyFromMnemonic(MNEMONIC, 0, "")
17+
if err != nil {
18+
log.Fatalf("Failed to get key from mnemonic: %v", err)
19+
}
20+
privateKeyEd25519Bech32, err := privateKeyEd25519.ToBech32()
21+
if err != nil {
22+
log.Fatalf("Failed to convert to bech32: %v", err)
23+
}
24+
publicKeyEd25519 := privateKeyEd25519.PublicKey()
25+
flaggedPublicKeyEd25519 := publicKeyEd25519.ToFlaggedBytes()
26+
addressEd25519 := publicKeyEd25519.DeriveAddress()
27+
28+
fmt.Println("Ed25519\n---:")
29+
fmt.Println("Private Key:", privateKeyEd25519Bech32)
30+
fmt.Println("Public Key:", sdk.Base64Encode(publicKeyEd25519.ToBytes()))
31+
fmt.Println("Public Key With Flag:", sdk.Base64Encode(flaggedPublicKeyEd25519))
32+
fmt.Println("Address:", addressEd25519.ToHex())
33+
34+
privateKeySecp256k1, err := sdk.Secp256k1PrivateKeyFromMnemonic(MNEMONIC, 1, "my_password")
35+
if err != nil {
36+
log.Fatalf("Failed to get key from mnemonic: %v", err)
37+
}
38+
privateKeySecp256k1Bech32, err := privateKeySecp256k1.ToBech32()
39+
if err != nil {
40+
log.Fatalf("Failed to convert to bech32: %v", err)
41+
}
42+
publicKeySecp256k1 := privateKeySecp256k1.PublicKey()
43+
flaggedPublicKeySecp256k1 := publicKeySecp256k1.ToFlaggedBytes()
44+
addressSecp256k1 := publicKeySecp256k1.DeriveAddress()
45+
46+
fmt.Println("\nSecp256k1\n---:")
47+
fmt.Println("Private Key:", privateKeySecp256k1Bech32)
48+
fmt.Println("Public Key:", sdk.Base64Encode(publicKeySecp256k1.ToBytes()))
49+
fmt.Println("Public Key With Flag:", sdk.Base64Encode(flaggedPublicKeySecp256k1))
50+
fmt.Println("Address:", addressSecp256k1.ToHex())
51+
52+
privateKeySecp256r1, err := sdk.Secp256r1PrivateKeyFromMnemonicWithPath(MNEMONIC, "m/74'/4218'/0'/0/2", "")
53+
if err != nil {
54+
log.Fatalf("Failed to get key from mnemonic: %v", err)
55+
}
56+
privateKeySecp256r1Bech32, err := privateKeySecp256r1.ToBech32()
57+
if err != nil {
58+
log.Fatalf("Failed to convert to bech32: %v", err)
59+
}
60+
publicKeySecp256r1 := privateKeySecp256r1.PublicKey()
61+
flaggedPublicKeySecp256r1 := publicKeySecp256r1.ToFlaggedBytes()
62+
addressSecp256r1 := publicKeySecp256r1.DeriveAddress()
63+
64+
fmt.Println("\nSecp256r1\n---:")
65+
fmt.Println("Private Key:", privateKeySecp256r1Bech32)
66+
fmt.Println("Public Key:", sdk.Base64Encode(publicKeySecp256r1.ToBytes()))
67+
fmt.Println("Public Key With Flag:", sdk.Base64Encode(flaggedPublicKeySecp256r1))
68+
fmt.Println("Address:", addressSecp256r1.ToHex())
69+
70+
}

bindings/go/iota_sdk_ffi/iota_sdk_ffi.go

Lines changed: 135 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7163,6 +7163,24 @@ func uniffiCheckChecksums() {
71637163
}
71647164
}
71657165
{
7166+
checksum := rustCall(func(_uniffiStatus *C.RustCallStatus) C.uint16_t {
7167+
return C.uniffi_iota_sdk_ffi_checksum_constructor_ed25519privatekey_from_mnemonic()
7168+
})
7169+
if checksum != 55789 {
7170+
// If this happens try cleaning and rebuilding your project
7171+
panic("iota_sdk_ffi: uniffi_iota_sdk_ffi_checksum_constructor_ed25519privatekey_from_mnemonic: UniFFI API checksum mismatch")
7172+
}
7173+
}
7174+
{
7175+
checksum := rustCall(func(_uniffiStatus *C.RustCallStatus) C.uint16_t {
7176+
return C.uniffi_iota_sdk_ffi_checksum_constructor_ed25519privatekey_from_mnemonic_with_path()
7177+
})
7178+
if checksum != 15255 {
7179+
// If this happens try cleaning and rebuilding your project
7180+
panic("iota_sdk_ffi: uniffi_iota_sdk_ffi_checksum_constructor_ed25519privatekey_from_mnemonic_with_path: UniFFI API checksum mismatch")
7181+
}
7182+
}
7183+
{
71667184
checksum := rustCall(func(_uniffiStatus *C.RustCallStatus) C.uint16_t {
71677185
return C.uniffi_iota_sdk_ffi_checksum_constructor_ed25519privatekey_from_pem()
71687186
})
@@ -8405,6 +8423,24 @@ func uniffiCheckChecksums() {
84058423
}
84068424
}
84078425
{
8426+
checksum := rustCall(func(_uniffiStatus *C.RustCallStatus) C.uint16_t {
8427+
return C.uniffi_iota_sdk_ffi_checksum_constructor_secp256k1privatekey_from_mnemonic()
8428+
})
8429+
if checksum != 33082 {
8430+
// If this happens try cleaning and rebuilding your project
8431+
panic("iota_sdk_ffi: uniffi_iota_sdk_ffi_checksum_constructor_secp256k1privatekey_from_mnemonic: UniFFI API checksum mismatch")
8432+
}
8433+
}
8434+
{
8435+
checksum := rustCall(func(_uniffiStatus *C.RustCallStatus) C.uint16_t {
8436+
return C.uniffi_iota_sdk_ffi_checksum_constructor_secp256k1privatekey_from_mnemonic_with_path()
8437+
})
8438+
if checksum != 7431 {
8439+
// If this happens try cleaning and rebuilding your project
8440+
panic("iota_sdk_ffi: uniffi_iota_sdk_ffi_checksum_constructor_secp256k1privatekey_from_mnemonic_with_path: UniFFI API checksum mismatch")
8441+
}
8442+
}
8443+
{
84088444
checksum := rustCall(func(_uniffiStatus *C.RustCallStatus) C.uint16_t {
84098445
return C.uniffi_iota_sdk_ffi_checksum_constructor_secp256k1privatekey_from_pem()
84108446
})
@@ -8540,6 +8576,24 @@ func uniffiCheckChecksums() {
85408576
}
85418577
}
85428578
{
8579+
checksum := rustCall(func(_uniffiStatus *C.RustCallStatus) C.uint16_t {
8580+
return C.uniffi_iota_sdk_ffi_checksum_constructor_secp256r1privatekey_from_mnemonic()
8581+
})
8582+
if checksum != 57849 {
8583+
// If this happens try cleaning and rebuilding your project
8584+
panic("iota_sdk_ffi: uniffi_iota_sdk_ffi_checksum_constructor_secp256r1privatekey_from_mnemonic: UniFFI API checksum mismatch")
8585+
}
8586+
}
8587+
{
8588+
checksum := rustCall(func(_uniffiStatus *C.RustCallStatus) C.uint16_t {
8589+
return C.uniffi_iota_sdk_ffi_checksum_constructor_secp256r1privatekey_from_mnemonic_with_path()
8590+
})
8591+
if checksum != 7709 {
8592+
// If this happens try cleaning and rebuilding your project
8593+
panic("iota_sdk_ffi: uniffi_iota_sdk_ffi_checksum_constructor_secp256r1privatekey_from_mnemonic_with_path: UniFFI API checksum mismatch")
8594+
}
8595+
}
8596+
{
85438597
checksum := rustCall(func(_uniffiStatus *C.RustCallStatus) C.uint16_t {
85448598
return C.uniffi_iota_sdk_ffi_checksum_constructor_secp256r1privatekey_from_pem()
85458599
})
@@ -13009,6 +13063,33 @@ func Ed25519PrivateKeyFromDer(bytes []byte) (*Ed25519PrivateKey, error) {
1300913063
}
1301013064
}
1301113065

13066+
// Construct the private key from a mnemonic phrase
13067+
func Ed25519PrivateKeyFromMnemonic(phrase string, accountIndex uint64, password string) (*Ed25519PrivateKey, error) {
13068+
_uniffiRV, _uniffiErr := rustCallWithError[SdkFfiError](FfiConverterSdkFfiError{},func(_uniffiStatus *C.RustCallStatus) unsafe.Pointer {
13069+
return C.uniffi_iota_sdk_ffi_fn_constructor_ed25519privatekey_from_mnemonic(FfiConverterStringINSTANCE.Lower(phrase), FfiConverterUint64INSTANCE.Lower(accountIndex), FfiConverterStringINSTANCE.Lower(password),_uniffiStatus)
13070+
})
13071+
if _uniffiErr != nil {
13072+
var _uniffiDefaultValue *Ed25519PrivateKey
13073+
return _uniffiDefaultValue, _uniffiErr
13074+
} else {
13075+
return FfiConverterEd25519PrivateKeyINSTANCE.Lift(_uniffiRV), nil
13076+
}
13077+
}
13078+
13079+
// Create an instance from a mnemonic phrase and a derivation path like
13080+
// `"m/44'/4218'/0'/0'/0'"`
13081+
func Ed25519PrivateKeyFromMnemonicWithPath(phrase string, path string, password string) (*Ed25519PrivateKey, error) {
13082+
_uniffiRV, _uniffiErr := rustCallWithError[SdkFfiError](FfiConverterSdkFfiError{},func(_uniffiStatus *C.RustCallStatus) unsafe.Pointer {
13083+
return C.uniffi_iota_sdk_ffi_fn_constructor_ed25519privatekey_from_mnemonic_with_path(FfiConverterStringINSTANCE.Lower(phrase), FfiConverterStringINSTANCE.Lower(path), FfiConverterStringINSTANCE.Lower(password),_uniffiStatus)
13084+
})
13085+
if _uniffiErr != nil {
13086+
var _uniffiDefaultValue *Ed25519PrivateKey
13087+
return _uniffiDefaultValue, _uniffiErr
13088+
} else {
13089+
return FfiConverterEd25519PrivateKeyINSTANCE.Lift(_uniffiRV), nil
13090+
}
13091+
}
13092+
1301213093
// Deserialize PKCS#8-encoded private key from PEM.
1301313094
func Ed25519PrivateKeyFromPem(s string) (*Ed25519PrivateKey, error) {
1301413095
_uniffiRV, _uniffiErr := rustCallWithError[SdkFfiError](FfiConverterSdkFfiError{},func(_uniffiStatus *C.RustCallStatus) unsafe.Pointer {
@@ -21631,6 +21712,33 @@ func Secp256k1PrivateKeyFromDer(bytes []byte) (*Secp256k1PrivateKey, error) {
2163121712
}
2163221713
}
2163321714

21715+
// Construct the private key from a mnemonic phrase
21716+
func Secp256k1PrivateKeyFromMnemonic(phrase string, accountIndex uint64, password string) (*Secp256k1PrivateKey, error) {
21717+
_uniffiRV, _uniffiErr := rustCallWithError[SdkFfiError](FfiConverterSdkFfiError{},func(_uniffiStatus *C.RustCallStatus) unsafe.Pointer {
21718+
return C.uniffi_iota_sdk_ffi_fn_constructor_secp256k1privatekey_from_mnemonic(FfiConverterStringINSTANCE.Lower(phrase), FfiConverterUint64INSTANCE.Lower(accountIndex), FfiConverterStringINSTANCE.Lower(password),_uniffiStatus)
21719+
})
21720+
if _uniffiErr != nil {
21721+
var _uniffiDefaultValue *Secp256k1PrivateKey
21722+
return _uniffiDefaultValue, _uniffiErr
21723+
} else {
21724+
return FfiConverterSecp256k1PrivateKeyINSTANCE.Lift(_uniffiRV), nil
21725+
}
21726+
}
21727+
21728+
// Create an instance from a mnemonic phrase and a derivation path like
21729+
// `"m/54'/4218'/0'/0/0"`
21730+
func Secp256k1PrivateKeyFromMnemonicWithPath(phrase string, path string, password string) (*Secp256k1PrivateKey, error) {
21731+
_uniffiRV, _uniffiErr := rustCallWithError[SdkFfiError](FfiConverterSdkFfiError{},func(_uniffiStatus *C.RustCallStatus) unsafe.Pointer {
21732+
return C.uniffi_iota_sdk_ffi_fn_constructor_secp256k1privatekey_from_mnemonic_with_path(FfiConverterStringINSTANCE.Lower(phrase), FfiConverterStringINSTANCE.Lower(path), FfiConverterStringINSTANCE.Lower(password),_uniffiStatus)
21733+
})
21734+
if _uniffiErr != nil {
21735+
var _uniffiDefaultValue *Secp256k1PrivateKey
21736+
return _uniffiDefaultValue, _uniffiErr
21737+
} else {
21738+
return FfiConverterSecp256k1PrivateKeyINSTANCE.Lift(_uniffiRV), nil
21739+
}
21740+
}
21741+
2163421742
// Deserialize PKCS#8-encoded private key from PEM.
2163521743
func Secp256k1PrivateKeyFromPem(s string) (*Secp256k1PrivateKey, error) {
2163621744
_uniffiRV, _uniffiErr := rustCallWithError[SdkFfiError](FfiConverterSdkFfiError{},func(_uniffiStatus *C.RustCallStatus) unsafe.Pointer {
@@ -22473,6 +22581,33 @@ func Secp256r1PrivateKeyFromDer(bytes []byte) (*Secp256r1PrivateKey, error) {
2247322581
}
2247422582
}
2247522583

22584+
// Construct the private key from a mnemonic phrase
22585+
func Secp256r1PrivateKeyFromMnemonic(phrase string, accountIndex uint64, password string) (*Secp256r1PrivateKey, error) {
22586+
_uniffiRV, _uniffiErr := rustCallWithError[SdkFfiError](FfiConverterSdkFfiError{},func(_uniffiStatus *C.RustCallStatus) unsafe.Pointer {
22587+
return C.uniffi_iota_sdk_ffi_fn_constructor_secp256r1privatekey_from_mnemonic(FfiConverterStringINSTANCE.Lower(phrase), FfiConverterUint64INSTANCE.Lower(accountIndex), FfiConverterStringINSTANCE.Lower(password),_uniffiStatus)
22588+
})
22589+
if _uniffiErr != nil {
22590+
var _uniffiDefaultValue *Secp256r1PrivateKey
22591+
return _uniffiDefaultValue, _uniffiErr
22592+
} else {
22593+
return FfiConverterSecp256r1PrivateKeyINSTANCE.Lift(_uniffiRV), nil
22594+
}
22595+
}
22596+
22597+
// Create an instance from a mnemonic phrase and a derivation path like
22598+
// `"m/74'/4218'/0'/0/0"`
22599+
func Secp256r1PrivateKeyFromMnemonicWithPath(phrase string, path string, password string) (*Secp256r1PrivateKey, error) {
22600+
_uniffiRV, _uniffiErr := rustCallWithError[SdkFfiError](FfiConverterSdkFfiError{},func(_uniffiStatus *C.RustCallStatus) unsafe.Pointer {
22601+
return C.uniffi_iota_sdk_ffi_fn_constructor_secp256r1privatekey_from_mnemonic_with_path(FfiConverterStringINSTANCE.Lower(phrase), FfiConverterStringINSTANCE.Lower(path), FfiConverterStringINSTANCE.Lower(password),_uniffiStatus)
22602+
})
22603+
if _uniffiErr != nil {
22604+
var _uniffiDefaultValue *Secp256r1PrivateKey
22605+
return _uniffiDefaultValue, _uniffiErr
22606+
} else {
22607+
return FfiConverterSecp256r1PrivateKeyINSTANCE.Lift(_uniffiRV), nil
22608+
}
22609+
}
22610+
2247622611
// Deserialize PKCS#8-encoded private key from PEM.
2247722612
func Secp256r1PrivateKeyFromPem(s string) (*Secp256r1PrivateKey, error) {
2247822613
_uniffiRV, _uniffiErr := rustCallWithError[SdkFfiError](FfiConverterSdkFfiError{},func(_uniffiStatus *C.RustCallStatus) unsafe.Pointer {

bindings/go/iota_sdk_ffi/iota_sdk_ffi.h

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1168,6 +1168,16 @@ void* uniffi_iota_sdk_ffi_fn_constructor_ed25519privatekey_from_bech32(RustBuffe
11681168
void* uniffi_iota_sdk_ffi_fn_constructor_ed25519privatekey_from_der(RustBuffer bytes, RustCallStatus *out_status
11691169
);
11701170
#endif
1171+
#ifndef UNIFFI_FFIDEF_UNIFFI_IOTA_SDK_FFI_FN_CONSTRUCTOR_ED25519PRIVATEKEY_FROM_MNEMONIC
1172+
#define UNIFFI_FFIDEF_UNIFFI_IOTA_SDK_FFI_FN_CONSTRUCTOR_ED25519PRIVATEKEY_FROM_MNEMONIC
1173+
void* uniffi_iota_sdk_ffi_fn_constructor_ed25519privatekey_from_mnemonic(RustBuffer phrase, uint64_t account_index, RustBuffer password, RustCallStatus *out_status
1174+
);
1175+
#endif
1176+
#ifndef UNIFFI_FFIDEF_UNIFFI_IOTA_SDK_FFI_FN_CONSTRUCTOR_ED25519PRIVATEKEY_FROM_MNEMONIC_WITH_PATH
1177+
#define UNIFFI_FFIDEF_UNIFFI_IOTA_SDK_FFI_FN_CONSTRUCTOR_ED25519PRIVATEKEY_FROM_MNEMONIC_WITH_PATH
1178+
void* uniffi_iota_sdk_ffi_fn_constructor_ed25519privatekey_from_mnemonic_with_path(RustBuffer phrase, RustBuffer path, RustBuffer password, RustCallStatus *out_status
1179+
);
1180+
#endif
11711181
#ifndef UNIFFI_FFIDEF_UNIFFI_IOTA_SDK_FFI_FN_CONSTRUCTOR_ED25519PRIVATEKEY_FROM_PEM
11721182
#define UNIFFI_FFIDEF_UNIFFI_IOTA_SDK_FFI_FN_CONSTRUCTOR_ED25519PRIVATEKEY_FROM_PEM
11731183
void* uniffi_iota_sdk_ffi_fn_constructor_ed25519privatekey_from_pem(RustBuffer s, RustCallStatus *out_status
@@ -3398,6 +3408,16 @@ void* uniffi_iota_sdk_ffi_fn_constructor_secp256k1privatekey_from_bech32(RustBuf
33983408
void* uniffi_iota_sdk_ffi_fn_constructor_secp256k1privatekey_from_der(RustBuffer bytes, RustCallStatus *out_status
33993409
);
34003410
#endif
3411+
#ifndef UNIFFI_FFIDEF_UNIFFI_IOTA_SDK_FFI_FN_CONSTRUCTOR_SECP256K1PRIVATEKEY_FROM_MNEMONIC
3412+
#define UNIFFI_FFIDEF_UNIFFI_IOTA_SDK_FFI_FN_CONSTRUCTOR_SECP256K1PRIVATEKEY_FROM_MNEMONIC
3413+
void* uniffi_iota_sdk_ffi_fn_constructor_secp256k1privatekey_from_mnemonic(RustBuffer phrase, uint64_t account_index, RustBuffer password, RustCallStatus *out_status
3414+
);
3415+
#endif
3416+
#ifndef UNIFFI_FFIDEF_UNIFFI_IOTA_SDK_FFI_FN_CONSTRUCTOR_SECP256K1PRIVATEKEY_FROM_MNEMONIC_WITH_PATH
3417+
#define UNIFFI_FFIDEF_UNIFFI_IOTA_SDK_FFI_FN_CONSTRUCTOR_SECP256K1PRIVATEKEY_FROM_MNEMONIC_WITH_PATH
3418+
void* uniffi_iota_sdk_ffi_fn_constructor_secp256k1privatekey_from_mnemonic_with_path(RustBuffer phrase, RustBuffer path, RustBuffer password, RustCallStatus *out_status
3419+
);
3420+
#endif
34013421
#ifndef UNIFFI_FFIDEF_UNIFFI_IOTA_SDK_FFI_FN_CONSTRUCTOR_SECP256K1PRIVATEKEY_FROM_PEM
34023422
#define UNIFFI_FFIDEF_UNIFFI_IOTA_SDK_FFI_FN_CONSTRUCTOR_SECP256K1PRIVATEKEY_FROM_PEM
34033423
void* uniffi_iota_sdk_ffi_fn_constructor_secp256k1privatekey_from_pem(RustBuffer s, RustCallStatus *out_status
@@ -3642,6 +3662,16 @@ void* uniffi_iota_sdk_ffi_fn_constructor_secp256r1privatekey_from_bech32(RustBuf
36423662
void* uniffi_iota_sdk_ffi_fn_constructor_secp256r1privatekey_from_der(RustBuffer bytes, RustCallStatus *out_status
36433663
);
36443664
#endif
3665+
#ifndef UNIFFI_FFIDEF_UNIFFI_IOTA_SDK_FFI_FN_CONSTRUCTOR_SECP256R1PRIVATEKEY_FROM_MNEMONIC
3666+
#define UNIFFI_FFIDEF_UNIFFI_IOTA_SDK_FFI_FN_CONSTRUCTOR_SECP256R1PRIVATEKEY_FROM_MNEMONIC
3667+
void* uniffi_iota_sdk_ffi_fn_constructor_secp256r1privatekey_from_mnemonic(RustBuffer phrase, uint64_t account_index, RustBuffer password, RustCallStatus *out_status
3668+
);
3669+
#endif
3670+
#ifndef UNIFFI_FFIDEF_UNIFFI_IOTA_SDK_FFI_FN_CONSTRUCTOR_SECP256R1PRIVATEKEY_FROM_MNEMONIC_WITH_PATH
3671+
#define UNIFFI_FFIDEF_UNIFFI_IOTA_SDK_FFI_FN_CONSTRUCTOR_SECP256R1PRIVATEKEY_FROM_MNEMONIC_WITH_PATH
3672+
void* uniffi_iota_sdk_ffi_fn_constructor_secp256r1privatekey_from_mnemonic_with_path(RustBuffer phrase, RustBuffer path, RustBuffer password, RustCallStatus *out_status
3673+
);
3674+
#endif
36453675
#ifndef UNIFFI_FFIDEF_UNIFFI_IOTA_SDK_FFI_FN_CONSTRUCTOR_SECP256R1PRIVATEKEY_FROM_PEM
36463676
#define UNIFFI_FFIDEF_UNIFFI_IOTA_SDK_FFI_FN_CONSTRUCTOR_SECP256R1PRIVATEKEY_FROM_PEM
36473677
void* uniffi_iota_sdk_ffi_fn_constructor_secp256r1privatekey_from_pem(RustBuffer s, RustCallStatus *out_status
@@ -11467,6 +11497,18 @@ uint16_t uniffi_iota_sdk_ffi_checksum_constructor_ed25519privatekey_from_bech32(
1146711497
#define UNIFFI_FFIDEF_UNIFFI_IOTA_SDK_FFI_CHECKSUM_CONSTRUCTOR_ED25519PRIVATEKEY_FROM_DER
1146811498
uint16_t uniffi_iota_sdk_ffi_checksum_constructor_ed25519privatekey_from_der(void
1146911499

11500+
);
11501+
#endif
11502+
#ifndef UNIFFI_FFIDEF_UNIFFI_IOTA_SDK_FFI_CHECKSUM_CONSTRUCTOR_ED25519PRIVATEKEY_FROM_MNEMONIC
11503+
#define UNIFFI_FFIDEF_UNIFFI_IOTA_SDK_FFI_CHECKSUM_CONSTRUCTOR_ED25519PRIVATEKEY_FROM_MNEMONIC
11504+
uint16_t uniffi_iota_sdk_ffi_checksum_constructor_ed25519privatekey_from_mnemonic(void
11505+
11506+
);
11507+
#endif
11508+
#ifndef UNIFFI_FFIDEF_UNIFFI_IOTA_SDK_FFI_CHECKSUM_CONSTRUCTOR_ED25519PRIVATEKEY_FROM_MNEMONIC_WITH_PATH
11509+
#define UNIFFI_FFIDEF_UNIFFI_IOTA_SDK_FFI_CHECKSUM_CONSTRUCTOR_ED25519PRIVATEKEY_FROM_MNEMONIC_WITH_PATH
11510+
uint16_t uniffi_iota_sdk_ffi_checksum_constructor_ed25519privatekey_from_mnemonic_with_path(void
11511+
1147011512
);
1147111513
#endif
1147211514
#ifndef UNIFFI_FFIDEF_UNIFFI_IOTA_SDK_FFI_CHECKSUM_CONSTRUCTOR_ED25519PRIVATEKEY_FROM_PEM
@@ -12295,6 +12337,18 @@ uint16_t uniffi_iota_sdk_ffi_checksum_constructor_secp256k1privatekey_from_bech3
1229512337
#define UNIFFI_FFIDEF_UNIFFI_IOTA_SDK_FFI_CHECKSUM_CONSTRUCTOR_SECP256K1PRIVATEKEY_FROM_DER
1229612338
uint16_t uniffi_iota_sdk_ffi_checksum_constructor_secp256k1privatekey_from_der(void
1229712339

12340+
);
12341+
#endif
12342+
#ifndef UNIFFI_FFIDEF_UNIFFI_IOTA_SDK_FFI_CHECKSUM_CONSTRUCTOR_SECP256K1PRIVATEKEY_FROM_MNEMONIC
12343+
#define UNIFFI_FFIDEF_UNIFFI_IOTA_SDK_FFI_CHECKSUM_CONSTRUCTOR_SECP256K1PRIVATEKEY_FROM_MNEMONIC
12344+
uint16_t uniffi_iota_sdk_ffi_checksum_constructor_secp256k1privatekey_from_mnemonic(void
12345+
12346+
);
12347+
#endif
12348+
#ifndef UNIFFI_FFIDEF_UNIFFI_IOTA_SDK_FFI_CHECKSUM_CONSTRUCTOR_SECP256K1PRIVATEKEY_FROM_MNEMONIC_WITH_PATH
12349+
#define UNIFFI_FFIDEF_UNIFFI_IOTA_SDK_FFI_CHECKSUM_CONSTRUCTOR_SECP256K1PRIVATEKEY_FROM_MNEMONIC_WITH_PATH
12350+
uint16_t uniffi_iota_sdk_ffi_checksum_constructor_secp256k1privatekey_from_mnemonic_with_path(void
12351+
1229812352
);
1229912353
#endif
1230012354
#ifndef UNIFFI_FFIDEF_UNIFFI_IOTA_SDK_FFI_CHECKSUM_CONSTRUCTOR_SECP256K1PRIVATEKEY_FROM_PEM
@@ -12385,6 +12439,18 @@ uint16_t uniffi_iota_sdk_ffi_checksum_constructor_secp256r1privatekey_from_bech3
1238512439
#define UNIFFI_FFIDEF_UNIFFI_IOTA_SDK_FFI_CHECKSUM_CONSTRUCTOR_SECP256R1PRIVATEKEY_FROM_DER
1238612440
uint16_t uniffi_iota_sdk_ffi_checksum_constructor_secp256r1privatekey_from_der(void
1238712441

12442+
);
12443+
#endif
12444+
#ifndef UNIFFI_FFIDEF_UNIFFI_IOTA_SDK_FFI_CHECKSUM_CONSTRUCTOR_SECP256R1PRIVATEKEY_FROM_MNEMONIC
12445+
#define UNIFFI_FFIDEF_UNIFFI_IOTA_SDK_FFI_CHECKSUM_CONSTRUCTOR_SECP256R1PRIVATEKEY_FROM_MNEMONIC
12446+
uint16_t uniffi_iota_sdk_ffi_checksum_constructor_secp256r1privatekey_from_mnemonic(void
12447+
12448+
);
12449+
#endif
12450+
#ifndef UNIFFI_FFIDEF_UNIFFI_IOTA_SDK_FFI_CHECKSUM_CONSTRUCTOR_SECP256R1PRIVATEKEY_FROM_MNEMONIC_WITH_PATH
12451+
#define UNIFFI_FFIDEF_UNIFFI_IOTA_SDK_FFI_CHECKSUM_CONSTRUCTOR_SECP256R1PRIVATEKEY_FROM_MNEMONIC_WITH_PATH
12452+
uint16_t uniffi_iota_sdk_ffi_checksum_constructor_secp256r1privatekey_from_mnemonic_with_path(void
12453+
1238812454
);
1238912455
#endif
1239012456
#ifndef UNIFFI_FFIDEF_UNIFFI_IOTA_SDK_FFI_CHECKSUM_CONSTRUCTOR_SECP256R1PRIVATEKEY_FROM_PEM

0 commit comments

Comments
 (0)