Kaynağa Gözat

SeekableModeWorker

Marcin Krzyzanowski 6 yıl önce
ebeveyn
işleme
aadf90a3ef

+ 1 - 1
Sources/CryptoSwift/BlockDecryptor.swift

@@ -72,7 +72,7 @@ public class BlockDecryptor: Cryptor, Updatable {
     }
 
     public func seek(to position: Int) throws {
-        guard var worker = self.worker as? StreamModeWorker else {
+        guard var worker = self.worker as? SeekableModeWorker else {
             fatalError("Not supported")
         }
 

+ 1 - 1
Sources/CryptoSwift/BlockMode/CCM.swift

@@ -46,7 +46,7 @@ public struct CCM: StreamMode {
     }
 }
 
-class CCMModeWorker: StreamModeWorker, CounterModeWorker, FinalizingModeWorker {
+class CCMModeWorker: StreamModeWorker, SeekableModeWorker, CounterModeWorker, FinalizingModeWorker {
     typealias Counter = Int
     var counter = 0
 

+ 1 - 1
Sources/CryptoSwift/BlockMode/CTR.swift

@@ -41,7 +41,7 @@ public struct CTR: StreamMode {
 
 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 
-struct CTRModeWorker: StreamModeWorker, CounterModeWorker {
+struct CTRModeWorker: StreamModeWorker, SeekableModeWorker, CounterModeWorker {
     typealias Counter = CTRCounter
 
     final class CTRCounter {

+ 6 - 1
Sources/CryptoSwift/BlockMode/CipherModeWorker.swift

@@ -24,6 +24,7 @@ public protocol CipherModeWorker {
     mutating func decrypt(block ciphertext: ArraySlice<UInt8>) -> Array<UInt8>
 }
 
+/// Block workers use `BlockEncryptor`
 public protocol BlockModeWorker: CipherModeWorker {
     var blockSize: Int { get }
 }
@@ -33,10 +34,14 @@ public protocol CounterModeWorker: CipherModeWorker {
     var counter: Counter { get set }
 }
 
-public protocol StreamModeWorker: CipherModeWorker {
+public protocol SeekableModeWorker: CipherModeWorker {
     mutating func seek(to position: Int) throws
 }
 
+/// Stream workers use `StreamEncryptor`
+public protocol StreamModeWorker: CipherModeWorker {
+}
+
 public protocol FinalizingModeWorker: CipherModeWorker {
     // Any final calculations, eg. calculate tag
     // Called after the last block is encrypted