Adding pull secretstream definition
This commit is contained in:
1 parent
28995c065f
commit
df87dae376
11 files changed
+223
-30
No files matched your search
+3
-1
@@ -126,7 +126,9 @@ enum class TypeDefinition(override val typeName: TypeName) : GeneralTypeDefiniti
|
||||
INT(Int::class.asTypeName()),
|
||||
STRING(String::class.asTypeName()),
|
||||
UNIT(Unit::class.asTypeName()),
|
||||
UBYTE(UByte::class.asTypeName())
|
||||
UBYTE(UByte::class.asTypeName()),
|
||||
IRRELEVANT(Unit::class.asTypeName()),
|
||||
NULL(Unit::class.asTypeName())
|
||||
}
|
||||
|
||||
enum class TargetPlatform {
|
||||
|
||||
+71
-2
@@ -68,7 +68,7 @@ fun ClassDefinition.defineSecretStreamFunctions() {
|
||||
+funcDef(
|
||||
"crypto_secretstream_xchacha20poly1305_init_push",
|
||||
codeDocumentation = """
|
||||
Initialize a state and generate a random header. Both are returned inside `SecretStreamStateAndHeader` object
|
||||
Initialize a state and generate a random header. Both are returned inside `SecretStreamStateAndHeader` object.
|
||||
""".trimIndent(),
|
||||
returnType = CustomTypeDefinition(withPackageName("SecretStreamStateAndHeader")),
|
||||
dynamicJsReturn = true,
|
||||
@@ -81,6 +81,32 @@ fun ClassDefinition.defineSecretStreamFunctions() {
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
+funcDef(
|
||||
"crypto_secretstream_xchacha20poly1305_init_pull",
|
||||
codeDocumentation = """
|
||||
Initialize state from header and key. The state can then be used for decryption.
|
||||
""".trimIndent(),
|
||||
returnType = CustomTypeDefinition(withPackageName("SecretStreamState")),
|
||||
dynamicJsReturn = true,
|
||||
isStateCreationFunction = true,
|
||||
) {
|
||||
+ParameterDefinition(
|
||||
"state",
|
||||
parameterType = CustomTypeDefinition(withPackageName("SecretStreamState")),
|
||||
dropParameterFromDefinition = true,
|
||||
isStateType = true
|
||||
)
|
||||
+ParameterDefinition(
|
||||
"header",
|
||||
parameterType = TypeDefinition.ARRAY_OF_UBYTES_NO_SIZE
|
||||
)
|
||||
+ParameterDefinition(
|
||||
"key",
|
||||
parameterType = TypeDefinition.ARRAY_OF_UBYTES_NO_SIZE
|
||||
)
|
||||
}
|
||||
|
||||
+funcDef(
|
||||
name = "crypto_secretstream_xchacha20poly1305_push",
|
||||
codeDocumentation = """
|
||||
@@ -94,10 +120,15 @@ fun ClassDefinition.defineSecretStreamFunctions() {
|
||||
)
|
||||
+ParameterDefinition(
|
||||
"c",
|
||||
TypeDefinition.ARRAY_OF_UBYTES_LONG_SIZE,
|
||||
TypeDefinition.ARRAY_OF_UBYTES_NO_SIZE,
|
||||
isActuallyAnOutputParam = true,
|
||||
dropParameterFromDefinition = true
|
||||
)
|
||||
+ParameterDefinition(
|
||||
"clen",
|
||||
TypeDefinition.NULL,
|
||||
dropParameterFromDefinition = true
|
||||
)
|
||||
+ParameterDefinition(
|
||||
"m",
|
||||
TypeDefinition.ARRAY_OF_UBYTES_LONG_SIZE,
|
||||
@@ -113,5 +144,43 @@ fun ClassDefinition.defineSecretStreamFunctions() {
|
||||
)
|
||||
}
|
||||
|
||||
+funcDef(
|
||||
name = "crypto_secretstream_xchacha20poly1305_pull",
|
||||
codeDocumentation = """
|
||||
Decrypt next block of data using the previously initialized state. Returns decrypted block.
|
||||
""".trimIndent(),
|
||||
returnType = TypeDefinition.ARRAY_OF_UBYTES
|
||||
) {
|
||||
+ParameterDefinition(
|
||||
"state",
|
||||
CustomTypeDefinition(withPackageName("SecretStreamState"))
|
||||
)
|
||||
+ParameterDefinition(
|
||||
"m",
|
||||
TypeDefinition.ARRAY_OF_UBYTES_NO_SIZE,
|
||||
isActuallyAnOutputParam = true,
|
||||
dropParameterFromDefinition = true
|
||||
)
|
||||
+ParameterDefinition(
|
||||
"mlen",
|
||||
TypeDefinition.NULL,
|
||||
dropParameterFromDefinition = true
|
||||
)
|
||||
+ParameterDefinition(
|
||||
"tag_p",
|
||||
TypeDefinition.NULL
|
||||
)
|
||||
+ParameterDefinition(
|
||||
"c",
|
||||
TypeDefinition.ARRAY_OF_UBYTES_LONG_SIZE,
|
||||
modifiesReturn = true
|
||||
)
|
||||
+ParameterDefinition(
|
||||
"ad",
|
||||
TypeDefinition.ARRAY_OF_UBYTES_LONG_SIZE
|
||||
)
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
+6
-3
@@ -3,6 +3,7 @@ package com.ionspin.kotlin.crypto.generator.libsodium.generator
|
||||
import com.ionspin.kotlin.crypto.generator.libsodium.definitions.FunctionDefinition
|
||||
import com.ionspin.kotlin.crypto.generator.libsodium.definitions.InnerClassDefinition
|
||||
import com.ionspin.kotlin.crypto.generator.libsodium.definitions.KotlinFileDefinition
|
||||
import com.ionspin.kotlin.crypto.generator.libsodium.definitions.TypeDefinition
|
||||
import com.squareup.kotlinpoet.*
|
||||
|
||||
/**
|
||||
@@ -56,9 +57,11 @@ object CommonLibsodiumGenerator {
|
||||
var actualReturnTypeFound : Boolean = false
|
||||
for (paramDefinition in methodDefinition.parameterList) {
|
||||
if ((paramDefinition.isStateType.not() || methodDefinition.isStateCreationFunction.not()) && paramDefinition.dropParameterFromDefinition.not()) {
|
||||
val parameterSpec =
|
||||
ParameterSpec.builder(paramDefinition.parameterName, paramDefinition.parameterType.typeName)
|
||||
methodBuilder.addParameter(parameterSpec.build())
|
||||
if (paramDefinition.parameterType != TypeDefinition.NULL) {
|
||||
val parameterSpec =
|
||||
ParameterSpec.builder(paramDefinition.parameterName, paramDefinition.parameterType.typeName)
|
||||
methodBuilder.addParameter(parameterSpec.build())
|
||||
}
|
||||
}
|
||||
if (paramDefinition.isActuallyAnOutputParam) {
|
||||
actualReturnTypeFound = true
|
||||
|
||||
+10
-4
@@ -68,9 +68,11 @@ object JsLibsodiumGenerator {
|
||||
var actualReturnTypeFound: Boolean = false
|
||||
for (paramDefinition in methodDefinition.parameterList) {
|
||||
if ((paramDefinition.isStateType.not() || methodDefinition.isStateCreationFunction.not()) && paramDefinition.isActuallyAnOutputParam.not()) {
|
||||
val parameterSpec =
|
||||
ParameterSpec.builder(paramDefinition.parameterName, paramDefinition.parameterType.typeName)
|
||||
methodBuilder.addParameter(parameterSpec.build())
|
||||
if (paramDefinition.parameterType != TypeDefinition.NULL) {
|
||||
val parameterSpec =
|
||||
ParameterSpec.builder(paramDefinition.parameterName, paramDefinition.parameterType.typeName)
|
||||
methodBuilder.addParameter(parameterSpec.build())
|
||||
}
|
||||
}
|
||||
if (paramDefinition.modifiesReturn) {
|
||||
if (returnModifierFound == true) {
|
||||
@@ -158,7 +160,7 @@ object JsLibsodiumGenerator {
|
||||
paramsBuilder.append(paramDefinition.parameterName + ".toUInt8Array()" + separator)
|
||||
}
|
||||
TypeDefinition.ARRAY_OF_UBYTES_LONG_SIZE -> {
|
||||
paramsBuilder.append(paramDefinition.parameterName + ".toUInt8Array(), " + separator)
|
||||
paramsBuilder.append(paramDefinition.parameterName + ".toUInt8Array()" + separator)
|
||||
}
|
||||
TypeDefinition.ARRAY_OF_UBYTES_NO_SIZE -> {
|
||||
paramsBuilder.append(paramDefinition.parameterName + ".toUInt8Array()" + separator)
|
||||
@@ -175,6 +177,10 @@ object JsLibsodiumGenerator {
|
||||
TypeDefinition.UBYTE -> {
|
||||
paramsBuilder.append(paramDefinition.parameterName + separator)
|
||||
}
|
||||
TypeDefinition.NULL -> {
|
||||
println("Got null parameter in js")
|
||||
// paramsBuilder.append("null" + separator)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+9
-4
@@ -63,9 +63,11 @@ object JvmLibsodiumGenerator {
|
||||
createStateParam(paramDefinition, methodBuilder)
|
||||
}
|
||||
if ((paramDefinition.isStateType.not() || methodDefinition.isStateCreationFunction.not()) && paramDefinition.isActuallyAnOutputParam.not()) {
|
||||
val parameterSpec =
|
||||
ParameterSpec.builder(paramDefinition.parameterName, paramDefinition.parameterType.typeName)
|
||||
methodBuilder.addParameter(parameterSpec.build())
|
||||
if (paramDefinition.parameterType != TypeDefinition.NULL) {
|
||||
val parameterSpec =
|
||||
ParameterSpec.builder(paramDefinition.parameterName, paramDefinition.parameterType.typeName)
|
||||
methodBuilder.addParameter(parameterSpec.build())
|
||||
}
|
||||
}
|
||||
if (paramDefinition.modifiesReturn) {
|
||||
if (returnModifierFound == true) {
|
||||
@@ -213,7 +215,10 @@ object JvmLibsodiumGenerator {
|
||||
paramsBuilder.append(paramDefinition.parameterName + separator)
|
||||
}
|
||||
TypeDefinition.UBYTE -> {
|
||||
paramsBuilder.append(paramDefinition.parameterName + separator)
|
||||
paramsBuilder.append(paramDefinition.parameterName + ".toByte()" + separator)
|
||||
}
|
||||
TypeDefinition.NULL -> {
|
||||
paramsBuilder.append("null" + separator)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+8
-3
@@ -78,9 +78,11 @@ object NativeLibsodiumGenerator {
|
||||
createStateParam(paramDefinition, methodBuilder)
|
||||
}
|
||||
if ((paramDefinition.isStateType.not() || methodDefinition.isStateCreationFunction.not()) && paramDefinition.isActuallyAnOutputParam.not()) {
|
||||
val parameterSpec =
|
||||
ParameterSpec.builder(paramDefinition.parameterName, paramDefinition.parameterType.typeName)
|
||||
methodBuilder.addParameter(parameterSpec.build())
|
||||
if (paramDefinition.parameterType != TypeDefinition.NULL) {
|
||||
val parameterSpec =
|
||||
ParameterSpec.builder(paramDefinition.parameterName, paramDefinition.parameterType.typeName)
|
||||
methodBuilder.addParameter(parameterSpec.build())
|
||||
}
|
||||
}
|
||||
if (paramDefinition.modifiesReturn) {
|
||||
if (returnModifierFound == true) {
|
||||
@@ -293,6 +295,9 @@ object NativeLibsodiumGenerator {
|
||||
TypeDefinition.UBYTE -> {
|
||||
paramsBuilder.append(paramDefinition.parameterName + separator)
|
||||
}
|
||||
TypeDefinition.NULL -> {
|
||||
paramsBuilder.append("null" + separator)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+1
@@ -12,3 +12,4 @@ import org.junit.Test
|
||||
class DebugTest {
|
||||
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user