mirror of
https://github.com/krzyzanowskim/CryptoSwift.git
synced 2026-06-06 20:17:32 +00:00
change UpdableCryptor to accept any SequenceType instead of Array
This commit is contained in:
@@ -403,7 +403,7 @@ extension AES {
|
||||
self.paddingRequired = aes.blockMode.options.contains(.PaddingRequired)
|
||||
}
|
||||
|
||||
mutating public func update(withBytes bytes:Array<UInt8>, isLast: Bool = false) throws -> Array<UInt8> {
|
||||
mutating public func update<T: SequenceType where T.Generator.Element == UInt8>(withBytes bytes:T, isLast: Bool = false) throws -> Array<UInt8> {
|
||||
self.accumulated += bytes
|
||||
|
||||
if isLast {
|
||||
@@ -445,7 +445,7 @@ extension AES {
|
||||
self.paddingRequired = aes.blockMode.options.contains(.PaddingRequired);
|
||||
}
|
||||
|
||||
mutating public func update(withBytes bytes:Array<UInt8>, isLast: Bool = false) throws -> Array<UInt8> {
|
||||
mutating public func update<T: SequenceType where T.Generator.Element == UInt8>(withBytes bytes:T, isLast: Bool = false) throws -> Array<UInt8> {
|
||||
self.accumulated += bytes
|
||||
|
||||
var plaintext = Array<UInt8>()
|
||||
|
||||
@@ -12,7 +12,7 @@ public protocol UpdatableCryptor {
|
||||
/// - parameter bytes: Bytes to process
|
||||
/// - parameter isLast: (Optional) Given chunk is the last one. No more updates after this call.
|
||||
/// - returns: Processed data or empty array.
|
||||
mutating func update(withBytes bytes:Array<UInt8>, isLast: Bool) throws -> Array<UInt8>
|
||||
mutating func update<T: SequenceType where T.Generator.Element == UInt8>(withBytes bytes:T, isLast: Bool) throws -> Array<UInt8>
|
||||
|
||||
/// Encrypt/Decrypt given bytes in chunks.
|
||||
///
|
||||
@@ -20,36 +20,44 @@ public protocol UpdatableCryptor {
|
||||
/// - parameter isLast: (Optional) Given chunk is the last one. No more updates after this call.
|
||||
/// - parameter output: Resulting data
|
||||
/// - returns: Processed data or empty array.
|
||||
mutating func update(withBytes bytes:Array<UInt8>, isLast: Bool, output: (Array<UInt8>) -> Void) throws
|
||||
mutating func update<T: SequenceType where T.Generator.Element == UInt8>(withBytes bytes:T, isLast: Bool, output: (Array<UInt8>) -> Void) throws
|
||||
|
||||
/// Finish encryption/decryption. This may apply padding.
|
||||
/// - parameter bytes: Bytes to process
|
||||
/// - returns: Processed data.
|
||||
mutating func finish(withBytes bytes:Array<UInt8>) throws -> Array<UInt8>
|
||||
mutating func finish<T: SequenceType where T.Generator.Element == UInt8>(withBytes bytes:T) throws -> Array<UInt8>
|
||||
|
||||
/// Finish encryption/decryption. This may apply padding.
|
||||
/// - parameter bytes: Bytes to process
|
||||
/// - parameter output: Resulting data
|
||||
/// - returns: Processed data.
|
||||
mutating func finish(withBytes bytes:Array<UInt8>, output: (Array<UInt8>) -> Void) throws
|
||||
mutating func finish<T: SequenceType where T.Generator.Element == UInt8>(withBytes bytes:T, output: (Array<UInt8>) -> Void) throws
|
||||
}
|
||||
|
||||
extension UpdatableCryptor {
|
||||
mutating public func update(withBytes bytes:Array<UInt8>, isLast: Bool = false, output: (Array<UInt8>) -> Void) throws {
|
||||
mutating public func update<T: SequenceType where T.Generator.Element == UInt8>(withBytes bytes:T, isLast: Bool = false, output: (Array<UInt8>) -> Void) throws {
|
||||
let processed = try self.update(withBytes: bytes, isLast: isLast)
|
||||
if (!processed.isEmpty) {
|
||||
output(processed)
|
||||
}
|
||||
}
|
||||
|
||||
mutating public func finish(withBytes bytes:Array<UInt8> = []) throws -> Array<UInt8> {
|
||||
mutating public func finish<T: SequenceType where T.Generator.Element == UInt8>(withBytes bytes:T) throws -> Array<UInt8> {
|
||||
return try self.update(withBytes: bytes, isLast: true)
|
||||
}
|
||||
|
||||
mutating public func finish() throws -> Array<UInt8> {
|
||||
return try self.update(withBytes: [], isLast: true)
|
||||
}
|
||||
|
||||
mutating public func finish(withBytes bytes:Array<UInt8> = [], output: (Array<UInt8>) -> Void) throws {
|
||||
mutating public func finish<T: SequenceType where T.Generator.Element == UInt8>(withBytes bytes:T, output: (Array<UInt8>) -> Void) throws {
|
||||
let processed = try self.update(withBytes: bytes, isLast: true)
|
||||
if (!processed.isEmpty) {
|
||||
output(processed)
|
||||
}
|
||||
}
|
||||
|
||||
mutating public func finish(output: (Array<UInt8>) -> Void) throws {
|
||||
try self.finish(withBytes: [], output: output)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user