|
@@ -11,18 +11,19 @@
|
|
public protocol Updatable {
|
|
public protocol Updatable {
|
|
/// Update given bytes in chunks.
|
|
/// Update given bytes in chunks.
|
|
///
|
|
///
|
|
- /// - parameter bytes: Bytes to process
|
|
|
|
- /// - parameter isLast: (Optional) Given chunk is the last one. No more updates after this call.
|
|
|
|
|
|
+ /// - parameter bytes: Bytes to process.
|
|
|
|
+ /// - parameter isLast: Indicate if given chunk is the last one. No more updates after this call.
|
|
/// - returns: Processed data or empty array.
|
|
/// - returns: Processed data or empty array.
|
|
mutating func update<T: Collection>(withBytes bytes: T, isLast: Bool) throws -> Array<UInt8> where T.Iterator.Element == UInt8
|
|
mutating func update<T: Collection>(withBytes bytes: T, isLast: Bool) throws -> Array<UInt8> where T.Iterator.Element == UInt8
|
|
|
|
|
|
/// Update given bytes in chunks.
|
|
/// Update given bytes in chunks.
|
|
///
|
|
///
|
|
- /// - parameter bytes: Bytes to process
|
|
|
|
- /// - 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<T: Collection>(withBytes bytes: T, isLast: Bool, output: (Array<UInt8>) -> Void) throws where T.Iterator.Element == UInt8
|
|
|
|
|
|
+ /// - Parameters:
|
|
|
|
+ /// - bytes: Bytes to process.
|
|
|
|
+ /// - isLast: Indicate if given chunk is the last one. No more updates after this call.
|
|
|
|
+ /// - output: Resulting bytes callback.
|
|
|
|
+ /// - Returns: Processed data or empty array.
|
|
|
|
+ mutating func update<T: Collection>(withBytes bytes: T, isLast: Bool, output: (_ bytes: Array<UInt8>) -> Void) throws where T.Iterator.Element == UInt8
|
|
|
|
|
|
/// Finish updates. This may apply padding.
|
|
/// Finish updates. This may apply padding.
|
|
/// - parameter bytes: Bytes to process
|
|
/// - parameter bytes: Bytes to process
|
|
@@ -33,12 +34,12 @@ public protocol Updatable {
|
|
/// - parameter bytes: Bytes to process
|
|
/// - parameter bytes: Bytes to process
|
|
/// - parameter output: Resulting data
|
|
/// - parameter output: Resulting data
|
|
/// - returns: Processed data.
|
|
/// - returns: Processed data.
|
|
- mutating func finish<T: Collection>(withBytes bytes: T, output: (Array<UInt8>) -> Void) throws where T.Iterator.Element == UInt8
|
|
|
|
|
|
+ mutating func finish<T: Collection>(withBytes bytes: T, output: (_ bytes: Array<UInt8>) -> Void) throws where T.Iterator.Element == UInt8
|
|
}
|
|
}
|
|
|
|
|
|
extension Updatable {
|
|
extension Updatable {
|
|
|
|
|
|
- mutating public func update<T: Collection>(withBytes bytes: T, isLast: Bool = false, output: (Array<UInt8>) -> Void) throws where T.Iterator.Element == UInt8 {
|
|
|
|
|
|
+ mutating public func update<T: Collection>(withBytes bytes: T, isLast: Bool = false, output: (_ bytes: Array<UInt8>) -> Void) throws where T.Iterator.Element == UInt8 {
|
|
let processed = try self.update(withBytes: bytes, isLast: isLast)
|
|
let processed = try self.update(withBytes: bytes, isLast: isLast)
|
|
if (!processed.isEmpty) {
|
|
if (!processed.isEmpty) {
|
|
output(processed)
|
|
output(processed)
|
|
@@ -53,7 +54,7 @@ extension Updatable {
|
|
return try self.update(withBytes: [], isLast: true)
|
|
return try self.update(withBytes: [], isLast: true)
|
|
}
|
|
}
|
|
|
|
|
|
- mutating public func finish<T: Collection>(withBytes bytes: T, output: (Array<UInt8>) -> Void) throws where T.Iterator.Element == UInt8 {
|
|
|
|
|
|
+ mutating public func finish<T: Collection>(withBytes bytes: T, output: (_ bytes: Array<UInt8>) -> Void) throws where T.Iterator.Element == UInt8 {
|
|
let processed = try self.update(withBytes: bytes, isLast: true)
|
|
let processed = try self.update(withBytes: bytes, isLast: true)
|
|
if (!processed.isEmpty) {
|
|
if (!processed.isEmpty) {
|
|
output(processed)
|
|
output(processed)
|