@@ -15,6 +15,7 @@ public enum BIP39Language {
15
15
case french
16
16
case italian
17
17
case spanish
18
+
18
19
public var words : [ String ] {
19
20
switch self {
20
21
case . english:
@@ -109,7 +110,7 @@ public class BIP39 {
109
110
}
110
111
111
112
public static func generateMnemonicsFromEntropy( entropy: Data , language: BIP39Language = . english) -> String ? {
112
- guard entropy. count >= 16 , entropy. count & 4 == 0 else { return nil }
113
+ guard entropy. count >= 16 , entropy. count & 4 == 0 else { return nil }
113
114
let separator = language. separator
114
115
let wordList = generateMnemonicsFrom ( entropy: entropy)
115
116
return wordList. joined ( separator: separator)
@@ -141,7 +142,7 @@ public class BIP39 {
141
142
}
142
143
143
144
public static func mnemonicsToEntropy( _ mnemonics: [ String ] , language: BIP39Language = . english) -> Data ? {
144
- guard mnemonics. count >= 12 && mnemonics. count. isMultiple ( of: 3 ) && mnemonics. count <= 24 else { return nil }
145
+ guard mnemonics. count >= 12 && mnemonics. count. isMultiple ( of: 3 ) && mnemonics. count <= 24 else { return nil }
145
146
var bitString = " "
146
147
for word in mnemonics {
147
148
guard let idx = language. words. firstIndex ( of: word) else {
@@ -179,10 +180,10 @@ public class BIP39 {
179
180
}
180
181
181
182
static private func dataFrom( mnemonics: String , password: String ) -> Data ? {
182
- guard let mnemData = mnemonics. decomposedStringWithCompatibilityMapping. data ( using: . utf8) else { return nil }
183
+ guard let mnemData = mnemonics. decomposedStringWithCompatibilityMapping. data ( using: . utf8) else { return nil }
183
184
let salt = " mnemonic " + password
184
- guard let saltData = salt. decomposedStringWithCompatibilityMapping. data ( using: . utf8) else { return nil }
185
- guard let seedArray = try ? PKCS5 . PBKDF2 ( password: mnemData. bytes, salt: saltData. bytes, iterations: 2048 , keyLength: 64 , variant: HMAC . Variant. sha2 ( . sha512) ) . calculate ( ) else { return nil }
185
+ guard let saltData = salt. decomposedStringWithCompatibilityMapping. data ( using: . utf8) else { return nil }
186
+ guard let seedArray = try ? PKCS5 . PBKDF2 ( password: mnemData. bytes, salt: saltData. bytes, iterations: 2048 , keyLength: 64 , variant: HMAC . Variant. sha2 ( . sha512) ) . calculate ( ) else { return nil }
186
187
return Data ( seedArray)
187
188
}
188
189
0 commit comments