Skip to content

Commit 371c603

Browse files
chore: using new implementation of Data.randomBytes
1 parent f5d81bc commit 371c603

File tree

6 files changed

+14
-25
lines changed

6 files changed

+14
-25
lines changed

Sources/Web3Core/KeystoreManager/BIP32Keystore.swift

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -220,17 +220,13 @@ public class BIP32Keystore: AbstractKeystore {
220220
guard data.count == 82 else {
221221
throw AbstractKeystoreError.encryptionError("Invalid expected data length")
222222
}
223-
guard let saltData = Data.randomBytes(length: 32) else {
224-
throw AbstractKeystoreError.noEntropyError
225-
}
223+
let saltData = try Data.randomBytes(count: 32)
226224
guard let derivedKey = scrypt(password: password, salt: saltData, length: dkLen, N: N, R: R, P: P) else {
227225
throw AbstractKeystoreError.keyDerivationError
228226
}
229227
let last16bytes = derivedKey[(derivedKey.count - 16)...(derivedKey.count - 1)]
230228
let encryptionKey = derivedKey[0...15]
231-
guard let IV = Data.randomBytes(length: 16) else {
232-
throw AbstractKeystoreError.noEntropyError
233-
}
229+
let IV = try Data.randomBytes(count: 16)
234230
var aesCipher: AES?
235231
switch aesMode {
236232
case "aes-128-cbc":

Sources/Web3Core/KeystoreManager/BIP39.swift

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -95,13 +95,10 @@ public class BIP39 {
9595
}
9696

9797
private static func entropyOf(size: Int) throws -> Data {
98-
guard
99-
size >= 128 && size <= 256 && size.isMultiple(of: 32),
100-
let entropy = Data.randomBytes(length: size/8)
101-
else {
98+
guard size >= 128 && size <= 256 && size.isMultiple(of: 32) else {
10299
throw AbstractKeystoreError.noEntropyError
103100
}
104-
return entropy
101+
return try Data.randomBytes(count: size / 8)
105102
}
106103

107104
static func bitarray(from data: Data) -> String {

Sources/Web3Core/KeystoreManager/EthereumKeystoreV3.swift

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -95,17 +95,13 @@ public class EthereumKeystoreV3: AbstractKeystore {
9595
throw AbstractKeystoreError.encryptionError("Encryption without key data")
9696
}
9797
let saltLen = 32
98-
guard let saltData = Data.randomBytes(length: saltLen) else {
99-
throw AbstractKeystoreError.noEntropyError
100-
}
98+
let saltData = try Data.randomBytes(count: saltLen)
10199
guard let derivedKey = scrypt(password: password, salt: saltData, length: dkLen, N: N, R: R, P: P) else {
102100
throw AbstractKeystoreError.keyDerivationError
103101
}
104102
let last16bytes = Data(derivedKey[(derivedKey.count - 16)...(derivedKey.count - 1)])
105103
let encryptionKey = Data(derivedKey[0...15])
106-
guard let IV = Data.randomBytes(length: 16) else {
107-
throw AbstractKeystoreError.noEntropyError
108-
}
104+
let IV = try Data.randomBytes(count: 16)
109105
var aesCipher: AES?
110106
switch aesMode {
111107
case "aes-128-cbc":

Tests/web3swiftTests/localTests/BIP39Tests.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ final class BIP39Tests: XCTestCase {
2525
}
2626

2727
func testBIP39SeedAndMnemConversions() throws {
28-
let seed = Data.randomBytes(length: 32)!
28+
let seed = try Data.randomBytes(count: 32)
2929
let mnemonics = BIP39.generateMnemonicsFromEntropy(entropy: seed)
3030
let recoveredSeed = BIP39.mnemonicsToEntropy(mnemonics!, language: .english)
3131
XCTAssert(seed == recoveredSeed)
@@ -95,7 +95,7 @@ final class BIP39Tests: XCTestCase {
9595
}
9696

9797
func testBIP39SeedAndMnemConversionsArray() throws {
98-
let seed = Data.randomBytes(length: 32)!
98+
let seed = try Data.randomBytes(count: 32)
9999
let mnemonics = BIP39.generateMnemonicsFrom(entropy: seed)
100100
let recoveredSeed = BIP39.mnemonicsToEntropy(mnemonics, language: .english)
101101
XCTAssert(seed == recoveredSeed)

Tests/web3swiftTests/localTests/EthereumContractTest.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -66,8 +66,8 @@ class EthereumContractTest: LocalTestCase {
6666
let web3 = try await Web3.new(LocalTestCase.url)
6767
let contract = try XCTUnwrap(web3.contract(EthereumContractTest.overloadedFunctionsABI, at: EthereumAddress("0x6394b37Cf80A7358b38068f0CA4760ad49983a1B")))
6868
let parameters: [Any] = [
69-
[Data.randomBytes(length: 32), Data.randomBytes(length: 32)],
70-
[Data.randomBytes(length: 32), Data.randomBytes(length: 32)]
69+
[try Data.randomBytes(count: 32), try Data.randomBytes(count: 32)],
70+
[try Data.randomBytes(count: 32), try Data.randomBytes(count: 32)]
7171
]
7272
let functionNameWithParameters = "setData(bytes32[],bytes[])"
7373
let transaction = contract.createWriteOperation(functionNameWithParameters, parameters: parameters)
@@ -88,7 +88,7 @@ class EthereumContractTest: LocalTestCase {
8888
func test_encodeMethodBasedOnHexSignature() async throws {
8989
let web3 = try await Web3.new(LocalTestCase.url)
9090
let contract = try XCTUnwrap(web3.contract(EthereumContractTest.overloadedFunctionsABI, at: EthereumAddress("0x6394b37Cf80A7358b38068f0CA4760ad49983a1B")))
91-
let parameters: [Any] = [Data.randomBytes(length: 32), Data.randomBytes(length: 32)]
91+
let parameters: [Any] = [try Data.randomBytes(count: 32), try Data.randomBytes(count: 32)]
9292
let functionSignature = getFuncSignature("setData(bytes32,bytes)")
9393
let transaction = contract.createWriteOperation(functionSignature, parameters: parameters)
9494
XCTAssertNotNil(transaction)

Tests/web3swiftTests/localTests/KeystoresTests.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ class KeystoresTests: LocalTestCase {
2727
}
2828

2929
func testBIP39SeedAndMnemConversions() throws {
30-
let seed = Data.randomBytes(length: 32)!
30+
let seed = try Data.randomBytes(count: 32)
3131
let mnemonics = BIP39.generateMnemonicsFromEntropy(entropy: seed)
3232
let recoveredSeed = BIP39.mnemonicsToEntropy(mnemonics!, language: .english)
3333
XCTAssert(seed == recoveredSeed)
@@ -263,7 +263,7 @@ class KeystoresTests: LocalTestCase {
263263
}
264264

265265
func testKeystoreDerivationTime() throws {
266-
let privateKey = Data.randomBytes(length: 32)!
266+
let privateKey = try Data.randomBytes(count: 32)
267267
measure {
268268
let ks = try! EthereumKeystoreV3(privateKey: privateKey, password: "TEST")!
269269
let account = ks.addresses!.first!
@@ -272,7 +272,7 @@ class KeystoresTests: LocalTestCase {
272272
}
273273

274274
func testSingleScryptDerivation() throws {
275-
let privateKey = Data.randomBytes(length: 32)!
275+
let privateKey = try Data.randomBytes(count: 32)
276276
_ = try! EthereumKeystoreV3(privateKey: privateKey, password: "TEST")!
277277
}
278278

0 commit comments

Comments
 (0)