Index: LegacyPasswordGenerator.m ================================================================== --- LegacyPasswordGenerator.m +++ LegacyPasswordGenerator.m @@ -87,13 +87,22 @@ if (_keyFile != nil) memcpy(combinedPassphraseItems + passphraseLength, _keyFile.items, _keyFile.count); outputItems = _output.mutableItems; - of_scrypt(8, 524288, 2, siteHash.digest, [siteHash.class digestSize], - combinedPassphraseItems, combinedPassphraseLength, outputItems, - _length, true); + of_scrypt((of_scrypt_parameters_t){ + .blockSize = 8, + .costFactor = 524288, + .parallelization = 2, + .salt = siteHash.digest, + .saltLength = [siteHash.class digestSize], + .password = combinedPassphraseItems, + .passwordLength = combinedPassphraseLength, + .key = outputItems, + .keyLength = _length, + .allowsSwappableMemory = false + }); /* * This has a bias, however, this is what scrypt-genpass does and the * legacy mode wants to be compatible to scrypt-genpass. */ Index: NewPasswordGenerator.m ================================================================== --- NewPasswordGenerator.m +++ NewPasswordGenerator.m @@ -74,17 +74,26 @@ if (_keyFile != nil) memcpy(combinedPassphraseItems + passphraseLength, _keyFile.items, _keyFile.count); outputItems = _output.mutableItems; - of_scrypt(8, 524288, 2, siteHash.digest, [siteHash.class digestSize], - combinedPassphraseItems, combinedPassphraseLength, outputItems, - _length, true); + of_scrypt((of_scrypt_parameters_t){ + .blockSize = 8, + .costFactor = 524288, + .parallelization = 2, + .salt = siteHash.digest, + .saltLength = [siteHash.class digestSize], + .password = combinedPassphraseItems, + .passwordLength = combinedPassphraseLength, + .key = outputItems, + .keyLength = _length, + .allowsSwappableMemory = false + }); for (size_t i = 0; i < _length; i++) outputItems[i] = "123456789" "abcdefghijkmnopqrstuvwxyz" "ABCDEFGHJKLMNPQRSTUVWXYZ" "#$%-=?"[outputItems[i] & 0x3F]; } @end