 
 private let WalletSecAttrService = "org.voisine.breadwallet"
 private let SeedEntropyLength = (128/8)
+private let BIP39CreationTime = TimeInterval(BIP39_CREATION_TIME) - NSTimeIntervalSince1970
 
 /// WalletAuthenticator is a protocol whose implementors are able to interact with wallet authentication
 public protocol WalletAuthenticator {

            BRBIP39DeriveKey(&seed.u8.0, nfkdPhrase as String, nil)
            self.masterPubKey = BRBIP32MasterPubKey(&seed, MemoryLayout<UInt512>.size)
            seed = UInt512() // clear seed
            self.earliestKeyTime = TimeInterval(BIP39_CREATION_TIME) - NSTimeIntervalSince1970
            try setKeychainItem(key: KeychainKey.masterPubKey, item: Data(masterPubKey: self.masterPubKey))
            return true
        }

                guard let nfkdPhrase = CFStringCreateMutableCopy(secureAllocator, 0, phrase as CFString)
                    else { return false }
                CFStringNormalize(nfkdPhrase, .KD)
                BRBIP39DeriveKey(&seed.u8.0, nfkdPhrase as String, nil)
                let mpk = BRBIP32MasterPubKey(&seed, MemoryLayout<UInt512>.size)
                seed = UInt512() // clear seed
                let mpkData: Data? = try keychainItem(key: KeychainKey.masterPubKey)
