mirror of
https://github.com/InsanusMokrassar/TelegramBotAPI.git
synced 2025-12-24 23:25:49 +00:00
global update of passport
This commit is contained in:
@@ -1,23 +1,23 @@
|
||||
package dev.inmo.tgbotapi.types.passport
|
||||
|
||||
import dev.inmo.micro_utils.serialization.base64.Base64StringSerializer
|
||||
import dev.inmo.micro_utils.crypto.SourceBytes
|
||||
import dev.inmo.micro_utils.serialization.base64.Base64BytesToFromStringSerializer
|
||||
import dev.inmo.tgbotapi.types.*
|
||||
import kotlinx.serialization.SerialName
|
||||
import kotlinx.serialization.Serializable
|
||||
|
||||
typealias EncryptedAndBase64EncodedData = String
|
||||
typealias EncryptedByBotPublicKeyData = String
|
||||
typealias EncryptedData = String
|
||||
typealias EncryptedByBotPublicKeyData = SourceBytes
|
||||
typealias EncryptedData = SourceBytes
|
||||
|
||||
@Serializable
|
||||
data class EncryptedCredentials(
|
||||
@SerialName(dataField)
|
||||
@Serializable(Base64StringSerializer::class)
|
||||
@Serializable(Base64BytesToFromStringSerializer::class)
|
||||
val data: EncryptedData,
|
||||
@SerialName(hashField)
|
||||
@Serializable(Base64StringSerializer::class)
|
||||
val hash: String,
|
||||
@Serializable(Base64BytesToFromStringSerializer::class)
|
||||
val hash: SourceBytes,
|
||||
@SerialName(secretField)
|
||||
@Serializable(Base64StringSerializer::class)
|
||||
@Serializable(Base64BytesToFromStringSerializer::class)
|
||||
val secret: EncryptedByBotPublicKeyData
|
||||
)
|
||||
|
||||
@@ -4,7 +4,7 @@ package dev.inmo.tgbotapi.types.passport
|
||||
|
||||
import dev.inmo.micro_utils.crypto.MD5
|
||||
import dev.inmo.micro_utils.crypto.md5
|
||||
import dev.inmo.micro_utils.serialization.base64.Base64StringSerializer
|
||||
import dev.inmo.micro_utils.serialization.base64.Base64BytesToFromStringSerializer
|
||||
import dev.inmo.tgbotapi.types.*
|
||||
import dev.inmo.tgbotapi.types.passport.encrypted_data.abstracts.*
|
||||
import dev.inmo.tgbotapi.types.passport.encrypted_data.type
|
||||
@@ -70,12 +70,12 @@ object PassportElementErrorSerializer : KSerializer<PassportElementError> {
|
||||
|
||||
@Serializable
|
||||
sealed class PassportSingleElementError : PassportElementError() {
|
||||
abstract val elementHash: String
|
||||
abstract val elementHash: PassportElementHash
|
||||
}
|
||||
|
||||
@Serializable
|
||||
sealed class PassportMultipleElementsError : PassportElementError() {
|
||||
abstract val elementsHashes: List<String>
|
||||
abstract val elementsHashes: List<PassportElementHash>
|
||||
}
|
||||
|
||||
@Serializable
|
||||
@@ -91,8 +91,8 @@ data class PassportElementErrorDataField(
|
||||
@SerialName(fieldNameField)
|
||||
val fieldName: String,
|
||||
@SerialName(dataHashField)
|
||||
@Serializable(Base64StringSerializer::class)
|
||||
override val elementHash: String,
|
||||
@Serializable(Base64BytesToFromStringSerializer::class)
|
||||
override val elementHash: PassportElementHash,
|
||||
@SerialName(messageField)
|
||||
override val message: String
|
||||
) : PassportSingleElementError() {
|
||||
@@ -112,8 +112,8 @@ data class PassportElementErrorFrontSide(
|
||||
@SerialName(typeField)
|
||||
override val type: String,
|
||||
@SerialName(fileHashField)
|
||||
@Serializable(Base64StringSerializer::class)
|
||||
override val elementHash: String,
|
||||
@Serializable(Base64BytesToFromStringSerializer::class)
|
||||
override val elementHash: PassportElementHash,
|
||||
@SerialName(messageField)
|
||||
override val message: String
|
||||
) : PassportElementFileError() {
|
||||
@@ -121,7 +121,7 @@ data class PassportElementErrorFrontSide(
|
||||
@Required
|
||||
override val source: String = frontSideField
|
||||
}
|
||||
fun WithFrontSide.createFrontSideError(message: String, unencryptedFileHash: String) = PassportElementErrorFrontSide(
|
||||
fun WithFrontSide.createFrontSideError(message: String, unencryptedFileHash: PassportElementHash) = PassportElementErrorFrontSide(
|
||||
type,
|
||||
unencryptedFileHash,
|
||||
message
|
||||
@@ -132,8 +132,8 @@ data class PassportElementErrorReverseSide(
|
||||
@SerialName(typeField)
|
||||
override val type: String,
|
||||
@SerialName(fileHashField)
|
||||
@Serializable(Base64StringSerializer::class)
|
||||
override val elementHash: String,
|
||||
@Serializable(Base64BytesToFromStringSerializer::class)
|
||||
override val elementHash: PassportElementHash,
|
||||
@SerialName(messageField)
|
||||
override val message: String
|
||||
) : PassportElementFileError() {
|
||||
@@ -141,7 +141,7 @@ data class PassportElementErrorReverseSide(
|
||||
@Required
|
||||
override val source: String = reverseSideField
|
||||
}
|
||||
fun WithReverseSide.createReverseSideError(message: String, unencryptedFileHash: String) = PassportElementErrorReverseSide(
|
||||
fun WithReverseSide.createReverseSideError(message: String, unencryptedFileHash: PassportElementHash) = PassportElementErrorReverseSide(
|
||||
type,
|
||||
unencryptedFileHash,
|
||||
message
|
||||
@@ -151,8 +151,8 @@ data class PassportElementErrorSelfie(
|
||||
@SerialName(typeField)
|
||||
override val type: String,
|
||||
@SerialName(fileHashField)
|
||||
@Serializable(Base64StringSerializer::class)
|
||||
override val elementHash: String,
|
||||
@Serializable(Base64BytesToFromStringSerializer::class)
|
||||
override val elementHash: PassportElementHash,
|
||||
@SerialName(messageField)
|
||||
override val message: String
|
||||
) : PassportElementFileError() {
|
||||
@@ -160,7 +160,7 @@ data class PassportElementErrorSelfie(
|
||||
@Required
|
||||
override val source: String = selfieField
|
||||
}
|
||||
fun WithSelfie.createSelfieError(message: String, unencryptedFileHash: String) = PassportElementErrorSelfie(
|
||||
fun WithSelfie.createSelfieError(message: String, unencryptedFileHash: PassportElementHash) = PassportElementErrorSelfie(
|
||||
type,
|
||||
unencryptedFileHash,
|
||||
message
|
||||
@@ -172,8 +172,8 @@ data class PassportElementErrorFile(
|
||||
@SerialName(typeField)
|
||||
override val type: String,
|
||||
@SerialName(fileHashField)
|
||||
@Serializable(Base64StringSerializer::class)
|
||||
override val elementHash: String,
|
||||
@Serializable(Base64BytesToFromStringSerializer::class)
|
||||
override val elementHash: PassportElementHash,
|
||||
@SerialName(messageField)
|
||||
override val message: String
|
||||
) : PassportElementFileError() {
|
||||
@@ -181,7 +181,7 @@ data class PassportElementErrorFile(
|
||||
@Required
|
||||
override val source: String = fileField
|
||||
}
|
||||
fun FilesCollection.createFileError(message: String, unencryptedFileHash: String) = PassportElementErrorFile(
|
||||
fun FilesCollection.createFileError(message: String, unencryptedFileHash: PassportElementHash) = PassportElementErrorFile(
|
||||
type,
|
||||
unencryptedFileHash,
|
||||
message
|
||||
@@ -192,7 +192,7 @@ data class PassportElementErrorFiles(
|
||||
@SerialName(typeField)
|
||||
override val type: String,
|
||||
@SerialName(fileHashesField)
|
||||
override val elementsHashes: List<@Serializable(Base64StringSerializer::class) String>,
|
||||
override val elementsHashes: List<@Serializable(Base64BytesToFromStringSerializer::class) PassportElementHash>,
|
||||
@SerialName(messageField)
|
||||
override val message: String
|
||||
) : PassportElementFilesError() {
|
||||
@@ -200,7 +200,7 @@ data class PassportElementErrorFiles(
|
||||
@Required
|
||||
override val source: String = filesField
|
||||
}
|
||||
fun FilesCollection.createFilesError(message: String, unencryptedFileHashes: List<String>) = PassportElementErrorFiles(
|
||||
fun FilesCollection.createFilesError(message: String, unencryptedFileHashes: List<PassportElementHash>) = PassportElementErrorFiles(
|
||||
type,
|
||||
unencryptedFileHashes,
|
||||
message
|
||||
@@ -212,8 +212,8 @@ data class PassportElementErrorTranslationFile(
|
||||
@SerialName(typeField)
|
||||
override val type: String,
|
||||
@SerialName(fileHashField)
|
||||
@Serializable(Base64StringSerializer::class)
|
||||
override val elementHash: String,
|
||||
@Serializable(Base64BytesToFromStringSerializer::class)
|
||||
override val elementHash: PassportElementHash,
|
||||
@SerialName(messageField)
|
||||
override val message: String
|
||||
) : PassportElementFileError() {
|
||||
@@ -221,7 +221,7 @@ data class PassportElementErrorTranslationFile(
|
||||
@Required
|
||||
override val source: String = translationFileField
|
||||
}
|
||||
fun Translatable.createFileError(message: String, unencryptedFileHash: String) = PassportElementErrorTranslationFile(
|
||||
fun Translatable.createFileError(message: String, unencryptedFileHash: PassportElementHash) = PassportElementErrorTranslationFile(
|
||||
type,
|
||||
unencryptedFileHash,
|
||||
message
|
||||
@@ -231,7 +231,7 @@ data class PassportElementErrorTranslationFiles(
|
||||
@SerialName(typeField)
|
||||
override val type: String,
|
||||
@SerialName(fileHashesField)
|
||||
override val elementsHashes: List<@Serializable(Base64StringSerializer::class) String>,
|
||||
override val elementsHashes: List<@Serializable(Base64BytesToFromStringSerializer::class) PassportElementHash>,
|
||||
@SerialName(messageField)
|
||||
override val message: String
|
||||
) : PassportElementFilesError() {
|
||||
@@ -239,7 +239,7 @@ data class PassportElementErrorTranslationFiles(
|
||||
@Required
|
||||
override val source: String = translationFilesField
|
||||
}
|
||||
fun Translatable.createFilesError(message: String, unencryptedFileHashes: List<String>) = PassportElementErrorTranslationFiles(
|
||||
fun Translatable.createFilesError(message: String, unencryptedFileHashes: List<PassportElementHash>) = PassportElementErrorTranslationFiles(
|
||||
type,
|
||||
unencryptedFileHashes,
|
||||
message
|
||||
@@ -250,8 +250,8 @@ data class PassportElementErrorUnspecified(
|
||||
@SerialName(typeField)
|
||||
override val type: String,
|
||||
@SerialName(fileHashField)
|
||||
@Serializable(Base64StringSerializer::class)
|
||||
override val elementHash: String,
|
||||
@Serializable(Base64BytesToFromStringSerializer::class)
|
||||
override val elementHash: PassportElementHash,
|
||||
@SerialName(messageField)
|
||||
override val message: String
|
||||
) : PassportElementFileError() {
|
||||
@@ -259,7 +259,7 @@ data class PassportElementErrorUnspecified(
|
||||
@Required
|
||||
override val source: String = unspecifiedField
|
||||
}
|
||||
fun EncryptedPassportElement.createUnspecifiedError(message: String, elementHash: String) = PassportElementErrorUnspecified(
|
||||
fun EncryptedPassportElement.createUnspecifiedError(message: String, elementHash: PassportElementHash) = PassportElementErrorUnspecified(
|
||||
type,
|
||||
elementHash,
|
||||
message
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
package dev.inmo.tgbotapi.types.passport.encrypted_data
|
||||
|
||||
import dev.inmo.micro_utils.serialization.base64.Base64StringSerializer
|
||||
import dev.inmo.micro_utils.serialization.base64.Base64BytesToFromStringSerializer
|
||||
import dev.inmo.tgbotapi.types.emailField
|
||||
import dev.inmo.tgbotapi.types.hashField
|
||||
import dev.inmo.tgbotapi.types.passport.encrypted_data.abstracts.PassportElementHash
|
||||
import dev.inmo.tgbotapi.types.passport.encrypted_data.abstracts.WithEmail
|
||||
import kotlinx.serialization.SerialName
|
||||
import kotlinx.serialization.Serializable
|
||||
@@ -12,7 +13,7 @@ data class Email(
|
||||
@SerialName(emailField)
|
||||
override val email: String,
|
||||
@SerialName(hashField)
|
||||
@Serializable(Base64StringSerializer::class)
|
||||
override val hash: String
|
||||
@Serializable(Base64BytesToFromStringSerializer::class)
|
||||
override val hash: PassportElementHash
|
||||
) : WithEmail {
|
||||
}
|
||||
@@ -1,8 +1,9 @@
|
||||
package dev.inmo.tgbotapi.types.passport.encrypted_data
|
||||
|
||||
import dev.inmo.micro_utils.serialization.base64.Base64StringSerializer
|
||||
import dev.inmo.micro_utils.serialization.base64.Base64BytesToFromStringSerializer
|
||||
import dev.inmo.tgbotapi.types.dataField
|
||||
import dev.inmo.tgbotapi.types.passport.EncryptedData
|
||||
import dev.inmo.tgbotapi.types.passport.encrypted_data.abstracts.PassportElementHash
|
||||
import dev.inmo.tgbotapi.types.passport.encrypted_data.abstracts.WithData
|
||||
import kotlinx.serialization.SerialName
|
||||
import kotlinx.serialization.Serializable
|
||||
@@ -10,8 +11,8 @@ import kotlinx.serialization.Serializable
|
||||
@Serializable
|
||||
data class EncryptedAddress(
|
||||
@SerialName(dataField)
|
||||
@Serializable(Base64StringSerializer::class)
|
||||
@Serializable(Base64BytesToFromStringSerializer::class)
|
||||
override val data: EncryptedData,
|
||||
@Serializable(Base64StringSerializer::class)
|
||||
override val hash: String
|
||||
@Serializable(Base64BytesToFromStringSerializer::class)
|
||||
override val hash: PassportElementHash
|
||||
) : WithData
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package dev.inmo.tgbotapi.types.passport.encrypted_data
|
||||
|
||||
import dev.inmo.micro_utils.crypto.decodeBase64
|
||||
import dev.inmo.micro_utils.serialization.encapsulator.Encapsulator
|
||||
import dev.inmo.tgbotapi.types.hashField
|
||||
import dev.inmo.tgbotapi.types.passport.encrypted_data.abstracts.EncryptedPassportElement
|
||||
@@ -45,7 +46,7 @@ object EncryptedElementSerializer : KSerializer<EncryptedPassportElement> {
|
||||
encryptedElementsClassesByTypes[type] ?.serializer ?.let { deserializer ->
|
||||
nonstrictJsonFormat.decodeFromJsonElement(deserializer, json)
|
||||
}
|
||||
} ?: UnknownEncryptedPassportElement(json, json[hashField] ?.jsonPrimitive ?.content ?: "")
|
||||
} ?: UnknownEncryptedPassportElement(json, json[hashField] ?.jsonPrimitive ?.content ?.decodeBase64() ?: byteArrayOf())
|
||||
}
|
||||
|
||||
override fun serialize(encoder: Encoder, value: EncryptedPassportElement) {
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
package dev.inmo.tgbotapi.types.passport.encrypted_data
|
||||
|
||||
import dev.inmo.micro_utils.serialization.base64.Base64StringSerializer
|
||||
import dev.inmo.micro_utils.serialization.base64.Base64BytesToFromStringSerializer
|
||||
import dev.inmo.tgbotapi.types.dataField
|
||||
import dev.inmo.tgbotapi.types.passport.EncryptedData
|
||||
import dev.inmo.tgbotapi.types.passport.encrypted_data.abstracts.PassportElementHash
|
||||
import dev.inmo.tgbotapi.types.passport.encrypted_data.abstracts.WithData
|
||||
import kotlinx.serialization.SerialName
|
||||
import kotlinx.serialization.Serializable
|
||||
@@ -10,8 +11,8 @@ import kotlinx.serialization.Serializable
|
||||
@Serializable
|
||||
data class EncryptedPersonalDetails(
|
||||
@SerialName(dataField)
|
||||
@Serializable(Base64StringSerializer::class)
|
||||
@Serializable(Base64BytesToFromStringSerializer::class)
|
||||
override val data: EncryptedData,
|
||||
@Serializable(Base64StringSerializer::class)
|
||||
override val hash: String
|
||||
@Serializable(Base64BytesToFromStringSerializer::class)
|
||||
override val hash: PassportElementHash
|
||||
) : WithData
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package dev.inmo.tgbotapi.types.passport.encrypted_data
|
||||
|
||||
import dev.inmo.micro_utils.serialization.base64.Base64StringSerializer
|
||||
import dev.inmo.micro_utils.serialization.base64.Base64BytesToFromStringSerializer
|
||||
import dev.inmo.tgbotapi.types.*
|
||||
import dev.inmo.tgbotapi.types.passport.EncryptedData
|
||||
import dev.inmo.tgbotapi.types.passport.encrypted_data.abstracts.*
|
||||
@@ -13,7 +13,7 @@ sealed class Passport : WithData, WithFrontSide, WithSelfie, Translatable
|
||||
@Serializable
|
||||
data class CommonPassport(
|
||||
@SerialName(dataField)
|
||||
@Serializable(Base64StringSerializer::class)
|
||||
@Serializable(Base64BytesToFromStringSerializer::class)
|
||||
override val data: EncryptedData,
|
||||
@SerialName(frontSideField)
|
||||
override val frontSide: PassportFile? = null,
|
||||
@@ -22,13 +22,13 @@ data class CommonPassport(
|
||||
@SerialName(translationField)
|
||||
override val translations: List<PassportFile> = emptyList(),
|
||||
@SerialName(hashField)
|
||||
@Serializable(Base64StringSerializer::class)
|
||||
override val hash: String
|
||||
@Serializable(Base64BytesToFromStringSerializer::class)
|
||||
override val hash: PassportElementHash
|
||||
) : Passport()
|
||||
@Serializable
|
||||
data class InternalPassport(
|
||||
@SerialName(dataField)
|
||||
@Serializable(Base64StringSerializer::class)
|
||||
@Serializable(Base64BytesToFromStringSerializer::class)
|
||||
override val data: EncryptedData,
|
||||
@SerialName(frontSideField)
|
||||
override val frontSide: PassportFile? = null,
|
||||
@@ -37,6 +37,6 @@ data class InternalPassport(
|
||||
@SerialName(translationField)
|
||||
override val translations: List<PassportFile> = emptyList(),
|
||||
@SerialName(hashField)
|
||||
@Serializable(Base64StringSerializer::class)
|
||||
override val hash: String
|
||||
@Serializable(Base64BytesToFromStringSerializer::class)
|
||||
override val hash: PassportElementHash
|
||||
) : Passport()
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
package dev.inmo.tgbotapi.types.passport.encrypted_data
|
||||
|
||||
import dev.inmo.micro_utils.serialization.base64.Base64StringSerializer
|
||||
import dev.inmo.micro_utils.serialization.base64.Base64BytesToFromStringSerializer
|
||||
import dev.inmo.tgbotapi.types.hashField
|
||||
import dev.inmo.tgbotapi.types.passport.encrypted_data.abstracts.PassportElementHash
|
||||
import dev.inmo.tgbotapi.types.passport.encrypted_data.abstracts.WithPhoneNumber
|
||||
import dev.inmo.tgbotapi.types.phoneNumberField
|
||||
import kotlinx.serialization.SerialName
|
||||
@@ -12,7 +13,7 @@ data class PhoneNumber(
|
||||
@SerialName(phoneNumberField)
|
||||
override val phoneNumber: String,
|
||||
@SerialName(hashField)
|
||||
@Serializable(Base64StringSerializer::class)
|
||||
override val hash: String
|
||||
@Serializable(Base64BytesToFromStringSerializer::class)
|
||||
override val hash: PassportElementHash
|
||||
) : WithPhoneNumber {
|
||||
}
|
||||
@@ -1,9 +1,8 @@
|
||||
package dev.inmo.tgbotapi.types.passport.encrypted_data
|
||||
|
||||
import dev.inmo.micro_utils.serialization.base64.Base64StringSerializer
|
||||
import dev.inmo.micro_utils.serialization.base64.Base64BytesToFromStringSerializer
|
||||
import dev.inmo.tgbotapi.types.*
|
||||
import dev.inmo.tgbotapi.types.passport.encrypted_data.abstracts.FilesCollection
|
||||
import dev.inmo.tgbotapi.types.passport.encrypted_data.abstracts.Translatable
|
||||
import dev.inmo.tgbotapi.types.passport.encrypted_data.abstracts.*
|
||||
import kotlinx.serialization.SerialName
|
||||
import kotlinx.serialization.Serializable
|
||||
|
||||
@@ -17,8 +16,8 @@ data class UtilityBill(
|
||||
@SerialName(translationField)
|
||||
override val translations: List<PassportFile> = emptyList(),
|
||||
@SerialName(hashField)
|
||||
@Serializable(Base64StringSerializer::class)
|
||||
override val hash: String
|
||||
@Serializable(Base64BytesToFromStringSerializer::class)
|
||||
override val hash: PassportElementHash
|
||||
) : TranslatableFilesCollection()
|
||||
@Serializable
|
||||
data class BankStatement(
|
||||
@@ -27,8 +26,8 @@ data class BankStatement(
|
||||
@SerialName(translationField)
|
||||
override val translations: List<PassportFile> = emptyList(),
|
||||
@SerialName(hashField)
|
||||
@Serializable(Base64StringSerializer::class)
|
||||
override val hash: String
|
||||
@Serializable(Base64BytesToFromStringSerializer::class)
|
||||
override val hash: PassportElementHash
|
||||
) : TranslatableFilesCollection()
|
||||
@Serializable
|
||||
data class RentalAgreement(
|
||||
@@ -37,8 +36,8 @@ data class RentalAgreement(
|
||||
@SerialName(translationField)
|
||||
override val translations: List<PassportFile> = emptyList(),
|
||||
@SerialName(hashField)
|
||||
@Serializable(Base64StringSerializer::class)
|
||||
override val hash: String
|
||||
@Serializable(Base64BytesToFromStringSerializer::class)
|
||||
override val hash: PassportElementHash
|
||||
) : TranslatableFilesCollection()
|
||||
@Serializable
|
||||
data class PassportRegistration(
|
||||
@@ -47,8 +46,8 @@ data class PassportRegistration(
|
||||
@SerialName(translationField)
|
||||
override val translations: List<PassportFile> = emptyList(),
|
||||
@SerialName(hashField)
|
||||
@Serializable(Base64StringSerializer::class)
|
||||
override val hash: String
|
||||
@Serializable(Base64BytesToFromStringSerializer::class)
|
||||
override val hash: PassportElementHash
|
||||
) : TranslatableFilesCollection()
|
||||
@Serializable
|
||||
data class TemporaryRegistration(
|
||||
@@ -57,7 +56,7 @@ data class TemporaryRegistration(
|
||||
@SerialName(translationField)
|
||||
override val translations: List<PassportFile> = emptyList(),
|
||||
@SerialName(hashField)
|
||||
@Serializable(Base64StringSerializer::class)
|
||||
override val hash: String
|
||||
@Serializable(Base64BytesToFromStringSerializer::class)
|
||||
override val hash: PassportElementHash
|
||||
) : TranslatableFilesCollection()
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package dev.inmo.tgbotapi.types.passport.encrypted_data
|
||||
|
||||
import dev.inmo.micro_utils.serialization.base64.Base64StringSerializer
|
||||
import dev.inmo.micro_utils.serialization.base64.Base64BytesToFromStringSerializer
|
||||
import dev.inmo.tgbotapi.types.*
|
||||
import dev.inmo.tgbotapi.types.passport.EncryptedData
|
||||
import dev.inmo.tgbotapi.types.passport.encrypted_data.abstracts.*
|
||||
@@ -13,7 +13,7 @@ sealed class TranslatableIDDocument : WithData, WithFrontSide, WithReverseSide,
|
||||
@Serializable
|
||||
data class DriverLicense(
|
||||
@SerialName(dataField)
|
||||
@Serializable(Base64StringSerializer::class)
|
||||
@Serializable(Base64BytesToFromStringSerializer::class)
|
||||
override val data: EncryptedData,
|
||||
@SerialName(frontSideField)
|
||||
override val frontSide: PassportFile? = null,
|
||||
@@ -24,14 +24,14 @@ data class DriverLicense(
|
||||
@SerialName(translationField)
|
||||
override val translations: List<PassportFile> = emptyList(),
|
||||
@SerialName(hashField)
|
||||
@Serializable(Base64StringSerializer::class)
|
||||
override val hash: String
|
||||
@Serializable(Base64BytesToFromStringSerializer::class)
|
||||
override val hash: PassportElementHash
|
||||
) : TranslatableIDDocument()
|
||||
|
||||
@Serializable
|
||||
data class IdentityCard(
|
||||
@SerialName(dataField)
|
||||
@Serializable(Base64StringSerializer::class)
|
||||
@Serializable(Base64BytesToFromStringSerializer::class)
|
||||
override val data: EncryptedData,
|
||||
@SerialName(frontSideField)
|
||||
override val frontSide: PassportFile? = null,
|
||||
@@ -42,6 +42,6 @@ data class IdentityCard(
|
||||
@SerialName(translationField)
|
||||
override val translations: List<PassportFile> = emptyList(),
|
||||
@SerialName(hashField)
|
||||
@Serializable(Base64StringSerializer::class)
|
||||
override val hash: String
|
||||
@Serializable(Base64BytesToFromStringSerializer::class)
|
||||
override val hash: PassportElementHash
|
||||
) : TranslatableIDDocument()
|
||||
|
||||
@@ -1,18 +1,21 @@
|
||||
package dev.inmo.tgbotapi.types.passport.encrypted_data.abstracts
|
||||
|
||||
import dev.inmo.micro_utils.serialization.base64.Base64StringSerializer
|
||||
import dev.inmo.micro_utils.crypto.SourceBytes
|
||||
import dev.inmo.micro_utils.serialization.base64.Base64BytesToFromStringSerializer
|
||||
import dev.inmo.tgbotapi.types.passport.encrypted_data.EncryptedElementSerializer
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.json.JsonObject
|
||||
|
||||
typealias PassportElementHash = SourceBytes
|
||||
|
||||
@Serializable(EncryptedElementSerializer::class)
|
||||
interface EncryptedPassportElement {
|
||||
val hash: String
|
||||
val hash: PassportElementHash
|
||||
}
|
||||
|
||||
@Serializable(EncryptedElementSerializer::class)
|
||||
data class UnknownEncryptedPassportElement(
|
||||
val rawJson: JsonObject,
|
||||
@Serializable(Base64StringSerializer::class)
|
||||
override val hash: String
|
||||
@Serializable(Base64BytesToFromStringSerializer::class)
|
||||
override val hash: PassportElementHash
|
||||
) : EncryptedPassportElement
|
||||
|
||||
@@ -29,5 +29,5 @@ fun Decryptor.decryptData(
|
||||
data: EncryptedCredentials
|
||||
) = nonstrictJsonFormat.decodeFromString(
|
||||
JsonObject.serializer(),
|
||||
data.data.encodeToByteArray().decrypt().decodeToString()
|
||||
data.data.decrypt().decodeToString()
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user