         return try Decryptor(password: password).decryptData(data)
     }
 
-    /// Generates random NSData of given length
+    /// Generates random Data of given length
     /// Crashes if `length` is larger than allocatable memory, or if the system random number generator is not available.
     public static func randomData(ofLength length: Int) -> Data {
         var data = Data(count: length)!

        ///
        /// - returns: Trailing data
        public func finalData() -> Data {
            var result = NSData(data: handle(engine.finalData())) as Data
            result.append(hmac.finalData())
            return result
        }

    }
}

/** Compare two Datas in time proportional to the untrusted data

Equatable-based comparisons genreally stop comparing at the first difference.
This can be used by attackers, in some situations,
