Skip to content

Commit 1a084ea

Browse files
committed
Extract IvCiphers to operations for ChaCha20 support
1 parent 951c4e8 commit 1a084ea

File tree

34 files changed

+588
-563
lines changed

34 files changed

+588
-563
lines changed

cryptography-core/api/cryptography-core.api

Lines changed: 69 additions & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -101,8 +101,8 @@ public final class dev/whyoleg/cryptography/algorithms/AES$CBC$Companion : dev/w
101101
}
102102

103103
public abstract interface class dev/whyoleg/cryptography/algorithms/AES$CBC$Key : dev/whyoleg/cryptography/algorithms/AES$Key {
104-
public abstract fun cipher (Z)Ldev/whyoleg/cryptography/algorithms/AES$IvCipher;
105-
public static synthetic fun cipher$default (Ldev/whyoleg/cryptography/algorithms/AES$CBC$Key;ZILjava/lang/Object;)Ldev/whyoleg/cryptography/algorithms/AES$IvCipher;
104+
public abstract fun cipher (Z)Ldev/whyoleg/cryptography/operations/IvCipher;
105+
public static synthetic fun cipher$default (Ldev/whyoleg/cryptography/algorithms/AES$CBC$Key;ZILjava/lang/Object;)Ldev/whyoleg/cryptography/operations/IvCipher;
106106
}
107107

108108
public abstract interface class dev/whyoleg/cryptography/algorithms/AES$CFB : dev/whyoleg/cryptography/algorithms/AES {
@@ -114,7 +114,7 @@ public final class dev/whyoleg/cryptography/algorithms/AES$CFB$Companion : dev/w
114114
}
115115

116116
public abstract interface class dev/whyoleg/cryptography/algorithms/AES$CFB$Key : dev/whyoleg/cryptography/algorithms/AES$Key {
117-
public abstract fun cipher ()Ldev/whyoleg/cryptography/algorithms/AES$IvCipher;
117+
public abstract fun cipher ()Ldev/whyoleg/cryptography/operations/IvCipher;
118118
}
119119

120120
public abstract interface class dev/whyoleg/cryptography/algorithms/AES$CMAC : dev/whyoleg/cryptography/algorithms/AES {
@@ -139,7 +139,7 @@ public final class dev/whyoleg/cryptography/algorithms/AES$CTR$Companion : dev/w
139139
}
140140

141141
public abstract interface class dev/whyoleg/cryptography/algorithms/AES$CTR$Key : dev/whyoleg/cryptography/algorithms/AES$Key {
142-
public abstract fun cipher ()Ldev/whyoleg/cryptography/algorithms/AES$IvCipher;
142+
public abstract fun cipher ()Ldev/whyoleg/cryptography/operations/IvCipher;
143143
}
144144

145145
public abstract interface class dev/whyoleg/cryptography/algorithms/AES$ECB : dev/whyoleg/cryptography/algorithms/AES {
@@ -164,70 +164,8 @@ public final class dev/whyoleg/cryptography/algorithms/AES$GCM$Companion : dev/w
164164
}
165165

166166
public abstract interface class dev/whyoleg/cryptography/algorithms/AES$GCM$Key : dev/whyoleg/cryptography/algorithms/AES$Key {
167-
public abstract fun cipher-6q1zMKY (I)Ldev/whyoleg/cryptography/algorithms/AES$IvAuthenticatedCipher;
168-
public static synthetic fun cipher-6q1zMKY$default (Ldev/whyoleg/cryptography/algorithms/AES$GCM$Key;IILjava/lang/Object;)Ldev/whyoleg/cryptography/algorithms/AES$IvAuthenticatedCipher;
169-
}
170-
171-
public abstract interface class dev/whyoleg/cryptography/algorithms/AES$IvAuthenticatedCipher : dev/whyoleg/cryptography/algorithms/AES$IvAuthenticatedDecryptor, dev/whyoleg/cryptography/algorithms/AES$IvAuthenticatedEncryptor, dev/whyoleg/cryptography/algorithms/AES$IvCipher, dev/whyoleg/cryptography/operations/AuthenticatedCipher {
172-
}
173-
174-
public abstract interface class dev/whyoleg/cryptography/algorithms/AES$IvAuthenticatedDecryptor : dev/whyoleg/cryptography/algorithms/AES$IvDecryptor, dev/whyoleg/cryptography/operations/AuthenticatedDecryptor {
175-
public fun decryptWithIv (Lkotlinx/io/bytestring/ByteString;Lkotlinx/io/bytestring/ByteString;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
176-
public fun decryptWithIv (Lkotlinx/io/bytestring/ByteString;Lkotlinx/io/bytestring/ByteString;Lkotlinx/io/bytestring/ByteString;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
177-
public fun decryptWithIv ([B[BLkotlin/coroutines/Continuation;)Ljava/lang/Object;
178-
public fun decryptWithIv ([B[B[BLkotlin/coroutines/Continuation;)Ljava/lang/Object;
179-
public fun decryptWithIvBlocking (Lkotlinx/io/bytestring/ByteString;Lkotlinx/io/bytestring/ByteString;)Lkotlinx/io/bytestring/ByteString;
180-
public fun decryptWithIvBlocking (Lkotlinx/io/bytestring/ByteString;Lkotlinx/io/bytestring/ByteString;Lkotlinx/io/bytestring/ByteString;)Lkotlinx/io/bytestring/ByteString;
181-
public fun decryptWithIvBlocking ([B[B)[B
182-
public abstract fun decryptWithIvBlocking ([B[B[B)[B
183-
public fun decryptingSinkWithIv (Lkotlinx/io/bytestring/ByteString;Lkotlinx/io/RawSink;Lkotlinx/io/bytestring/ByteString;)Lkotlinx/io/RawSink;
184-
public fun decryptingSinkWithIv ([BLkotlinx/io/RawSink;)Lkotlinx/io/RawSink;
185-
public abstract fun decryptingSinkWithIv ([BLkotlinx/io/RawSink;[B)Lkotlinx/io/RawSink;
186-
public fun decryptingSourceWithIv (Lkotlinx/io/bytestring/ByteString;Lkotlinx/io/RawSource;Lkotlinx/io/bytestring/ByteString;)Lkotlinx/io/RawSource;
187-
public fun decryptingSourceWithIv ([BLkotlinx/io/RawSource;)Lkotlinx/io/RawSource;
188-
public abstract fun decryptingSourceWithIv ([BLkotlinx/io/RawSource;[B)Lkotlinx/io/RawSource;
189-
}
190-
191-
public abstract interface class dev/whyoleg/cryptography/algorithms/AES$IvAuthenticatedEncryptor : dev/whyoleg/cryptography/algorithms/AES$IvEncryptor, dev/whyoleg/cryptography/operations/AuthenticatedEncryptor {
192-
public fun encryptWithIv (Lkotlinx/io/bytestring/ByteString;Lkotlinx/io/bytestring/ByteString;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
193-
public fun encryptWithIv (Lkotlinx/io/bytestring/ByteString;Lkotlinx/io/bytestring/ByteString;Lkotlinx/io/bytestring/ByteString;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
194-
public fun encryptWithIv ([B[BLkotlin/coroutines/Continuation;)Ljava/lang/Object;
195-
public fun encryptWithIv ([B[B[BLkotlin/coroutines/Continuation;)Ljava/lang/Object;
196-
public fun encryptWithIvBlocking (Lkotlinx/io/bytestring/ByteString;Lkotlinx/io/bytestring/ByteString;)Lkotlinx/io/bytestring/ByteString;
197-
public fun encryptWithIvBlocking (Lkotlinx/io/bytestring/ByteString;Lkotlinx/io/bytestring/ByteString;Lkotlinx/io/bytestring/ByteString;)Lkotlinx/io/bytestring/ByteString;
198-
public fun encryptWithIvBlocking ([B[B)[B
199-
public abstract fun encryptWithIvBlocking ([B[B[B)[B
200-
public fun encryptingSinkWithIv (Lkotlinx/io/bytestring/ByteString;Lkotlinx/io/RawSink;Lkotlinx/io/bytestring/ByteString;)Lkotlinx/io/RawSink;
201-
public fun encryptingSinkWithIv ([BLkotlinx/io/RawSink;)Lkotlinx/io/RawSink;
202-
public abstract fun encryptingSinkWithIv ([BLkotlinx/io/RawSink;[B)Lkotlinx/io/RawSink;
203-
public fun encryptingSourceWithIv (Lkotlinx/io/bytestring/ByteString;Lkotlinx/io/RawSource;Lkotlinx/io/bytestring/ByteString;)Lkotlinx/io/RawSource;
204-
public fun encryptingSourceWithIv ([BLkotlinx/io/RawSource;)Lkotlinx/io/RawSource;
205-
public abstract fun encryptingSourceWithIv ([BLkotlinx/io/RawSource;[B)Lkotlinx/io/RawSource;
206-
}
207-
208-
public abstract interface class dev/whyoleg/cryptography/algorithms/AES$IvCipher : dev/whyoleg/cryptography/algorithms/AES$IvDecryptor, dev/whyoleg/cryptography/algorithms/AES$IvEncryptor, dev/whyoleg/cryptography/operations/Cipher {
209-
}
210-
211-
public abstract interface class dev/whyoleg/cryptography/algorithms/AES$IvDecryptor : dev/whyoleg/cryptography/operations/Decryptor {
212-
public fun decryptWithIv (Lkotlinx/io/bytestring/ByteString;Lkotlinx/io/bytestring/ByteString;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
213-
public fun decryptWithIv ([B[BLkotlin/coroutines/Continuation;)Ljava/lang/Object;
214-
public fun decryptWithIvBlocking (Lkotlinx/io/bytestring/ByteString;Lkotlinx/io/bytestring/ByteString;)Lkotlinx/io/bytestring/ByteString;
215-
public abstract fun decryptWithIvBlocking ([B[B)[B
216-
public fun decryptingSinkWithIv (Lkotlinx/io/bytestring/ByteString;Lkotlinx/io/RawSink;)Lkotlinx/io/RawSink;
217-
public abstract fun decryptingSinkWithIv ([BLkotlinx/io/RawSink;)Lkotlinx/io/RawSink;
218-
public fun decryptingSourceWithIv (Lkotlinx/io/bytestring/ByteString;Lkotlinx/io/RawSource;)Lkotlinx/io/RawSource;
219-
public abstract fun decryptingSourceWithIv ([BLkotlinx/io/RawSource;)Lkotlinx/io/RawSource;
220-
}
221-
222-
public abstract interface class dev/whyoleg/cryptography/algorithms/AES$IvEncryptor : dev/whyoleg/cryptography/operations/Encryptor {
223-
public fun encryptWithIv (Lkotlinx/io/bytestring/ByteString;Lkotlinx/io/bytestring/ByteString;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
224-
public fun encryptWithIv ([B[BLkotlin/coroutines/Continuation;)Ljava/lang/Object;
225-
public fun encryptWithIvBlocking (Lkotlinx/io/bytestring/ByteString;Lkotlinx/io/bytestring/ByteString;)Lkotlinx/io/bytestring/ByteString;
226-
public abstract fun encryptWithIvBlocking ([B[B)[B
227-
public fun encryptingSinkWithIv (Lkotlinx/io/bytestring/ByteString;Lkotlinx/io/RawSink;)Lkotlinx/io/RawSink;
228-
public abstract fun encryptingSinkWithIv ([BLkotlinx/io/RawSink;)Lkotlinx/io/RawSink;
229-
public fun encryptingSourceWithIv (Lkotlinx/io/bytestring/ByteString;Lkotlinx/io/RawSource;)Lkotlinx/io/RawSource;
230-
public abstract fun encryptingSourceWithIv ([BLkotlinx/io/RawSource;)Lkotlinx/io/RawSource;
167+
public abstract fun cipher-6q1zMKY (I)Ldev/whyoleg/cryptography/operations/IvAuthenticatedCipher;
168+
public static synthetic fun cipher-6q1zMKY$default (Ldev/whyoleg/cryptography/algorithms/AES$GCM$Key;IILjava/lang/Object;)Ldev/whyoleg/cryptography/operations/IvAuthenticatedCipher;
231169
}
232170

233171
public abstract interface class dev/whyoleg/cryptography/algorithms/AES$Key : dev/whyoleg/cryptography/materials/key/EncodableKey {
@@ -258,7 +196,7 @@ public final class dev/whyoleg/cryptography/algorithms/AES$OFB$Companion : dev/w
258196
}
259197

260198
public abstract interface class dev/whyoleg/cryptography/algorithms/AES$OFB$Key : dev/whyoleg/cryptography/algorithms/AES$Key {
261-
public abstract fun cipher ()Ldev/whyoleg/cryptography/algorithms/AES$IvCipher;
199+
public abstract fun cipher ()Ldev/whyoleg/cryptography/operations/IvCipher;
262200
}
263201

264202
public abstract interface class dev/whyoleg/cryptography/algorithms/Digest : dev/whyoleg/cryptography/CryptographyAlgorithm {
@@ -844,6 +782,68 @@ public abstract interface class dev/whyoleg/cryptography/operations/Hasher {
844782
public fun hashBlocking ([B)[B
845783
}
846784

785+
public abstract interface class dev/whyoleg/cryptography/operations/IvAuthenticatedCipher : dev/whyoleg/cryptography/operations/AuthenticatedCipher, dev/whyoleg/cryptography/operations/IvAuthenticatedDecryptor, dev/whyoleg/cryptography/operations/IvAuthenticatedEncryptor, dev/whyoleg/cryptography/operations/IvCipher {
786+
}
787+
788+
public abstract interface class dev/whyoleg/cryptography/operations/IvAuthenticatedDecryptor : dev/whyoleg/cryptography/operations/AuthenticatedDecryptor, dev/whyoleg/cryptography/operations/IvDecryptor {
789+
public fun decryptWithIv (Lkotlinx/io/bytestring/ByteString;Lkotlinx/io/bytestring/ByteString;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
790+
public fun decryptWithIv (Lkotlinx/io/bytestring/ByteString;Lkotlinx/io/bytestring/ByteString;Lkotlinx/io/bytestring/ByteString;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
791+
public fun decryptWithIv ([B[BLkotlin/coroutines/Continuation;)Ljava/lang/Object;
792+
public fun decryptWithIv ([B[B[BLkotlin/coroutines/Continuation;)Ljava/lang/Object;
793+
public fun decryptWithIvBlocking (Lkotlinx/io/bytestring/ByteString;Lkotlinx/io/bytestring/ByteString;)Lkotlinx/io/bytestring/ByteString;
794+
public fun decryptWithIvBlocking (Lkotlinx/io/bytestring/ByteString;Lkotlinx/io/bytestring/ByteString;Lkotlinx/io/bytestring/ByteString;)Lkotlinx/io/bytestring/ByteString;
795+
public fun decryptWithIvBlocking ([B[B)[B
796+
public abstract fun decryptWithIvBlocking ([B[B[B)[B
797+
public fun decryptingSinkWithIv (Lkotlinx/io/bytestring/ByteString;Lkotlinx/io/RawSink;Lkotlinx/io/bytestring/ByteString;)Lkotlinx/io/RawSink;
798+
public fun decryptingSinkWithIv ([BLkotlinx/io/RawSink;)Lkotlinx/io/RawSink;
799+
public abstract fun decryptingSinkWithIv ([BLkotlinx/io/RawSink;[B)Lkotlinx/io/RawSink;
800+
public fun decryptingSourceWithIv (Lkotlinx/io/bytestring/ByteString;Lkotlinx/io/RawSource;Lkotlinx/io/bytestring/ByteString;)Lkotlinx/io/RawSource;
801+
public fun decryptingSourceWithIv ([BLkotlinx/io/RawSource;)Lkotlinx/io/RawSource;
802+
public abstract fun decryptingSourceWithIv ([BLkotlinx/io/RawSource;[B)Lkotlinx/io/RawSource;
803+
}
804+
805+
public abstract interface class dev/whyoleg/cryptography/operations/IvAuthenticatedEncryptor : dev/whyoleg/cryptography/operations/AuthenticatedEncryptor, dev/whyoleg/cryptography/operations/IvEncryptor {
806+
public fun encryptWithIv (Lkotlinx/io/bytestring/ByteString;Lkotlinx/io/bytestring/ByteString;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
807+
public fun encryptWithIv (Lkotlinx/io/bytestring/ByteString;Lkotlinx/io/bytestring/ByteString;Lkotlinx/io/bytestring/ByteString;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
808+
public fun encryptWithIv ([B[BLkotlin/coroutines/Continuation;)Ljava/lang/Object;
809+
public fun encryptWithIv ([B[B[BLkotlin/coroutines/Continuation;)Ljava/lang/Object;
810+
public fun encryptWithIvBlocking (Lkotlinx/io/bytestring/ByteString;Lkotlinx/io/bytestring/ByteString;)Lkotlinx/io/bytestring/ByteString;
811+
public fun encryptWithIvBlocking (Lkotlinx/io/bytestring/ByteString;Lkotlinx/io/bytestring/ByteString;Lkotlinx/io/bytestring/ByteString;)Lkotlinx/io/bytestring/ByteString;
812+
public fun encryptWithIvBlocking ([B[B)[B
813+
public abstract fun encryptWithIvBlocking ([B[B[B)[B
814+
public fun encryptingSinkWithIv (Lkotlinx/io/bytestring/ByteString;Lkotlinx/io/RawSink;Lkotlinx/io/bytestring/ByteString;)Lkotlinx/io/RawSink;
815+
public fun encryptingSinkWithIv ([BLkotlinx/io/RawSink;)Lkotlinx/io/RawSink;
816+
public abstract fun encryptingSinkWithIv ([BLkotlinx/io/RawSink;[B)Lkotlinx/io/RawSink;
817+
public fun encryptingSourceWithIv (Lkotlinx/io/bytestring/ByteString;Lkotlinx/io/RawSource;Lkotlinx/io/bytestring/ByteString;)Lkotlinx/io/RawSource;
818+
public fun encryptingSourceWithIv ([BLkotlinx/io/RawSource;)Lkotlinx/io/RawSource;
819+
public abstract fun encryptingSourceWithIv ([BLkotlinx/io/RawSource;[B)Lkotlinx/io/RawSource;
820+
}
821+
822+
public abstract interface class dev/whyoleg/cryptography/operations/IvCipher : dev/whyoleg/cryptography/operations/Cipher, dev/whyoleg/cryptography/operations/IvDecryptor, dev/whyoleg/cryptography/operations/IvEncryptor {
823+
}
824+
825+
public abstract interface class dev/whyoleg/cryptography/operations/IvDecryptor : dev/whyoleg/cryptography/operations/Decryptor {
826+
public fun decryptWithIv (Lkotlinx/io/bytestring/ByteString;Lkotlinx/io/bytestring/ByteString;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
827+
public fun decryptWithIv ([B[BLkotlin/coroutines/Continuation;)Ljava/lang/Object;
828+
public fun decryptWithIvBlocking (Lkotlinx/io/bytestring/ByteString;Lkotlinx/io/bytestring/ByteString;)Lkotlinx/io/bytestring/ByteString;
829+
public abstract fun decryptWithIvBlocking ([B[B)[B
830+
public fun decryptingSinkWithIv (Lkotlinx/io/bytestring/ByteString;Lkotlinx/io/RawSink;)Lkotlinx/io/RawSink;
831+
public abstract fun decryptingSinkWithIv ([BLkotlinx/io/RawSink;)Lkotlinx/io/RawSink;
832+
public fun decryptingSourceWithIv (Lkotlinx/io/bytestring/ByteString;Lkotlinx/io/RawSource;)Lkotlinx/io/RawSource;
833+
public abstract fun decryptingSourceWithIv ([BLkotlinx/io/RawSource;)Lkotlinx/io/RawSource;
834+
}
835+
836+
public abstract interface class dev/whyoleg/cryptography/operations/IvEncryptor : dev/whyoleg/cryptography/operations/Encryptor {
837+
public fun encryptWithIv (Lkotlinx/io/bytestring/ByteString;Lkotlinx/io/bytestring/ByteString;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
838+
public fun encryptWithIv ([B[BLkotlin/coroutines/Continuation;)Ljava/lang/Object;
839+
public fun encryptWithIvBlocking (Lkotlinx/io/bytestring/ByteString;Lkotlinx/io/bytestring/ByteString;)Lkotlinx/io/bytestring/ByteString;
840+
public abstract fun encryptWithIvBlocking ([B[B)[B
841+
public fun encryptingSinkWithIv (Lkotlinx/io/bytestring/ByteString;Lkotlinx/io/RawSink;)Lkotlinx/io/RawSink;
842+
public abstract fun encryptingSinkWithIv ([BLkotlinx/io/RawSink;)Lkotlinx/io/RawSink;
843+
public fun encryptingSourceWithIv (Lkotlinx/io/bytestring/ByteString;Lkotlinx/io/RawSource;)Lkotlinx/io/RawSource;
844+
public abstract fun encryptingSourceWithIv ([BLkotlinx/io/RawSource;)Lkotlinx/io/RawSource;
845+
}
846+
847847
public abstract interface class dev/whyoleg/cryptography/operations/SecretDerivation {
848848
public fun deriveSecret (Lkotlinx/io/bytestring/ByteString;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
849849
public fun deriveSecret ([BLkotlin/coroutines/Continuation;)Ljava/lang/Object;

0 commit comments

Comments
 (0)