Skip to content

Commit 8b42a67

Browse files
committed
Add API for streaming encryption/decryption
1 parent 490ab7c commit 8b42a67

File tree

5 files changed

+292
-25
lines changed

5 files changed

+292
-25
lines changed

cryptography-core/api/cryptography-core.api

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,12 @@ public abstract interface class dev/whyoleg/cryptography/algorithms/AES$IvAuthen
149149
public fun decryptWithIvBlocking (Lkotlinx/io/bytestring/ByteString;Lkotlinx/io/bytestring/ByteString;Lkotlinx/io/bytestring/ByteString;)Lkotlinx/io/bytestring/ByteString;
150150
public fun decryptWithIvBlocking ([B[B)[B
151151
public abstract fun decryptWithIvBlocking ([B[B[B)[B
152+
public fun decryptingSinkWithIv (Lkotlinx/io/bytestring/ByteString;Lkotlinx/io/RawSink;Lkotlinx/io/bytestring/ByteString;)Lkotlinx/io/RawSink;
153+
public fun decryptingSinkWithIv ([BLkotlinx/io/RawSink;)Lkotlinx/io/RawSink;
154+
public abstract fun decryptingSinkWithIv ([BLkotlinx/io/RawSink;[B)Lkotlinx/io/RawSink;
155+
public fun decryptingSourceWithIv (Lkotlinx/io/bytestring/ByteString;Lkotlinx/io/RawSource;Lkotlinx/io/bytestring/ByteString;)Lkotlinx/io/RawSource;
156+
public fun decryptingSourceWithIv ([BLkotlinx/io/RawSource;)Lkotlinx/io/RawSource;
157+
public abstract fun decryptingSourceWithIv ([BLkotlinx/io/RawSource;[B)Lkotlinx/io/RawSource;
152158
}
153159

154160
public abstract interface class dev/whyoleg/cryptography/algorithms/AES$IvAuthenticatedEncryptor : dev/whyoleg/cryptography/algorithms/AES$IvEncryptor, dev/whyoleg/cryptography/operations/AuthenticatedEncryptor {
@@ -164,6 +170,12 @@ public abstract interface class dev/whyoleg/cryptography/algorithms/AES$IvAuthen
164170
public fun encryptWithIvBlocking (Lkotlinx/io/bytestring/ByteString;Lkotlinx/io/bytestring/ByteString;Lkotlinx/io/bytestring/ByteString;)Lkotlinx/io/bytestring/ByteString;
165171
public fun encryptWithIvBlocking ([B[B)[B
166172
public abstract fun encryptWithIvBlocking ([B[B[B)[B
173+
public fun encryptingSinkWithIv (Lkotlinx/io/bytestring/ByteString;Lkotlinx/io/RawSink;Lkotlinx/io/bytestring/ByteString;)Lkotlinx/io/RawSink;
174+
public fun encryptingSinkWithIv ([BLkotlinx/io/RawSink;)Lkotlinx/io/RawSink;
175+
public abstract fun encryptingSinkWithIv ([BLkotlinx/io/RawSink;[B)Lkotlinx/io/RawSink;
176+
public fun encryptingSourceWithIv (Lkotlinx/io/bytestring/ByteString;Lkotlinx/io/RawSource;Lkotlinx/io/bytestring/ByteString;)Lkotlinx/io/RawSource;
177+
public fun encryptingSourceWithIv ([BLkotlinx/io/RawSource;)Lkotlinx/io/RawSource;
178+
public abstract fun encryptingSourceWithIv ([BLkotlinx/io/RawSource;[B)Lkotlinx/io/RawSource;
167179
}
168180

169181
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 {
@@ -176,6 +188,10 @@ public abstract interface class dev/whyoleg/cryptography/algorithms/AES$IvDecryp
176188
public static synthetic fun decryptWithIv$suspendImpl (Ldev/whyoleg/cryptography/algorithms/AES$IvDecryptor;[B[BLkotlin/coroutines/Continuation;)Ljava/lang/Object;
177189
public fun decryptWithIvBlocking (Lkotlinx/io/bytestring/ByteString;Lkotlinx/io/bytestring/ByteString;)Lkotlinx/io/bytestring/ByteString;
178190
public abstract fun decryptWithIvBlocking ([B[B)[B
191+
public fun decryptingSinkWithIv (Lkotlinx/io/bytestring/ByteString;Lkotlinx/io/RawSink;)Lkotlinx/io/RawSink;
192+
public abstract fun decryptingSinkWithIv ([BLkotlinx/io/RawSink;)Lkotlinx/io/RawSink;
193+
public fun decryptingSourceWithIv (Lkotlinx/io/bytestring/ByteString;Lkotlinx/io/RawSource;)Lkotlinx/io/RawSource;
194+
public abstract fun decryptingSourceWithIv ([BLkotlinx/io/RawSource;)Lkotlinx/io/RawSource;
179195
}
180196

181197
public abstract interface class dev/whyoleg/cryptography/algorithms/AES$IvEncryptor : dev/whyoleg/cryptography/operations/Encryptor {
@@ -185,6 +201,10 @@ public abstract interface class dev/whyoleg/cryptography/algorithms/AES$IvEncryp
185201
public static synthetic fun encryptWithIv$suspendImpl (Ldev/whyoleg/cryptography/algorithms/AES$IvEncryptor;[B[BLkotlin/coroutines/Continuation;)Ljava/lang/Object;
186202
public fun encryptWithIvBlocking (Lkotlinx/io/bytestring/ByteString;Lkotlinx/io/bytestring/ByteString;)Lkotlinx/io/bytestring/ByteString;
187203
public abstract fun encryptWithIvBlocking ([B[B)[B
204+
public fun encryptingSinkWithIv (Lkotlinx/io/bytestring/ByteString;Lkotlinx/io/RawSink;)Lkotlinx/io/RawSink;
205+
public abstract fun encryptingSinkWithIv ([BLkotlinx/io/RawSink;)Lkotlinx/io/RawSink;
206+
public fun encryptingSourceWithIv (Lkotlinx/io/bytestring/ByteString;Lkotlinx/io/RawSource;)Lkotlinx/io/RawSource;
207+
public abstract fun encryptingSourceWithIv ([BLkotlinx/io/RawSource;)Lkotlinx/io/RawSource;
188208
}
189209

190210
public abstract interface class dev/whyoleg/cryptography/algorithms/AES$Key : dev/whyoleg/cryptography/materials/key/EncodableKey {
@@ -705,6 +725,12 @@ public abstract interface class dev/whyoleg/cryptography/operations/Authenticate
705725
public fun decryptBlocking (Lkotlinx/io/bytestring/ByteString;Lkotlinx/io/bytestring/ByteString;)Lkotlinx/io/bytestring/ByteString;
706726
public fun decryptBlocking ([B)[B
707727
public abstract fun decryptBlocking ([B[B)[B
728+
public fun decryptingSink (Lkotlinx/io/RawSink;)Lkotlinx/io/RawSink;
729+
public fun decryptingSink (Lkotlinx/io/RawSink;Lkotlinx/io/bytestring/ByteString;)Lkotlinx/io/RawSink;
730+
public abstract fun decryptingSink (Lkotlinx/io/RawSink;[B)Lkotlinx/io/RawSink;
731+
public fun decryptingSource (Lkotlinx/io/RawSource;)Lkotlinx/io/RawSource;
732+
public fun decryptingSource (Lkotlinx/io/RawSource;Lkotlinx/io/bytestring/ByteString;)Lkotlinx/io/RawSource;
733+
public abstract fun decryptingSource (Lkotlinx/io/RawSource;[B)Lkotlinx/io/RawSource;
708734
}
709735

710736
public abstract interface class dev/whyoleg/cryptography/operations/AuthenticatedEncryptor : dev/whyoleg/cryptography/operations/Encryptor {
@@ -720,6 +746,12 @@ public abstract interface class dev/whyoleg/cryptography/operations/Authenticate
720746
public fun encryptBlocking (Lkotlinx/io/bytestring/ByteString;Lkotlinx/io/bytestring/ByteString;)Lkotlinx/io/bytestring/ByteString;
721747
public fun encryptBlocking ([B)[B
722748
public abstract fun encryptBlocking ([B[B)[B
749+
public fun encryptingSink (Lkotlinx/io/RawSink;)Lkotlinx/io/RawSink;
750+
public fun encryptingSink (Lkotlinx/io/RawSink;Lkotlinx/io/bytestring/ByteString;)Lkotlinx/io/RawSink;
751+
public abstract fun encryptingSink (Lkotlinx/io/RawSink;[B)Lkotlinx/io/RawSink;
752+
public fun encryptingSource (Lkotlinx/io/RawSource;)Lkotlinx/io/RawSource;
753+
public fun encryptingSource (Lkotlinx/io/RawSource;Lkotlinx/io/bytestring/ByteString;)Lkotlinx/io/RawSource;
754+
public abstract fun encryptingSource (Lkotlinx/io/RawSource;[B)Lkotlinx/io/RawSource;
723755
}
724756

725757
public abstract interface class dev/whyoleg/cryptography/operations/Cipher : dev/whyoleg/cryptography/operations/Decryptor, dev/whyoleg/cryptography/operations/Encryptor {
@@ -732,6 +764,8 @@ public abstract interface class dev/whyoleg/cryptography/operations/Decryptor {
732764
public static synthetic fun decrypt$suspendImpl (Ldev/whyoleg/cryptography/operations/Decryptor;[BLkotlin/coroutines/Continuation;)Ljava/lang/Object;
733765
public fun decryptBlocking (Lkotlinx/io/bytestring/ByteString;)Lkotlinx/io/bytestring/ByteString;
734766
public abstract fun decryptBlocking ([B)[B
767+
public abstract fun decryptingSink (Lkotlinx/io/RawSink;)Lkotlinx/io/RawSink;
768+
public abstract fun decryptingSource (Lkotlinx/io/RawSource;)Lkotlinx/io/RawSource;
735769
}
736770

737771
public abstract interface class dev/whyoleg/cryptography/operations/Encryptor {
@@ -741,6 +775,8 @@ public abstract interface class dev/whyoleg/cryptography/operations/Encryptor {
741775
public static synthetic fun encrypt$suspendImpl (Ldev/whyoleg/cryptography/operations/Encryptor;[BLkotlin/coroutines/Continuation;)Ljava/lang/Object;
742776
public fun encryptBlocking (Lkotlinx/io/bytestring/ByteString;)Lkotlinx/io/bytestring/ByteString;
743777
public abstract fun encryptBlocking ([B)[B
778+
public abstract fun encryptingSink (Lkotlinx/io/RawSink;)Lkotlinx/io/RawSink;
779+
public abstract fun encryptingSource (Lkotlinx/io/RawSource;)Lkotlinx/io/RawSource;
744780
}
745781

746782
public abstract interface class dev/whyoleg/cryptography/operations/HashFunction : dev/whyoleg/cryptography/operations/UpdateFunction {

0 commit comments

Comments
 (0)