From b411ad66654ce06c8c7e6ec7990910f746fe3048 Mon Sep 17 00:00:00 2001 From: Florian Friemel Date: Thu, 22 Nov 2018 13:40:50 +0000 Subject: [PATCH] [ENT-2539] Implement support for holding node Legal Identity keys in Ultimaco HSM (#1571) * Add dependencies for Utimaco HSM. The CryptoServerJCE.jar was added in node/lib. The node/capsule/build.gradle excludes this jar from the final corda.jar. * Copy the HSM Simulator utility from Network Services. HsmSimulator.kt uses the spotify docker client to pull an image with a pre-configured hsm simulator from our docker registry and run it in integration tests. * Implementation of the CryptoService interface for Utimaco HSM. * Integration test for Utimaco CryptoService. * Unit tests for UtimacoCryptoService (only config parsing). * Integrate Utimaco CryptoService in AbstractNode and NodeConfiguration. * Respond to Feedback: Remove copyright notice. * Respond to PR Feedback: Improve integration test. * Use custom overrides in DriverDSLImpl.startNodeRegistration * Make Utimaco dependencies compileOnly and testCompile. * Add integration test for registering a node that is backed by utimaco HSM. * Respond to feedback: move HsmSimulator to different package. * Make NodeConfiguration.cryptoServiceConf a Path instead of String. * Add Keyfile-based login. * Respond to feedback -- default signing algorithm. * Respond to feedback: naming. * UtimacoNodeRegistrationTest: explicitly verify that tx signature is valid. * Respond to feedback: Static import assertThat. * Rename key file for test login so it's not ignored. --- .idea/compiler.xml | 4 + docs/source/corda-hsm.rst | 7 + .../nodeapi/internal/crypto/X509Utilities.kt | 2 + node/build.gradle | 7 + node/capsule/build.gradle | 4 +- node/lib/CryptoServerJCE.jar | Bin 0 -> 522059 bytes .../keys/cryptoservice/utimaco/Utils.kt | 34 + .../UtimacoCryptoServiceIntegrationTest.kt | 173 + .../utimaco/UtimacoNodeRegistrationTest.kt | 123 + .../utilities/registration/TestDoorman.kt | 121 + .../keys/cryptoservice/utimaco/ADMIN.keykey | 10 + .../cryptoservice/utimaco/utimaco_config.yml | 21 + .../net/corda/node/internal/AbstractNode.kt | 11 +- .../node/services/config/NodeConfiguration.kt | 11 +- .../services/config/NodeConfigurationImpl.kt | 4 +- .../schema/v1/V1NodeConfigurationSpec.kt | 2 +- .../cryptoservice/SupportedCryptoServices.kt | 4 +- .../utimaco/UtimacoCryptoService.kt | 318 ++ .../keys/cryptoservice/utimaco/hsm_errors | 4462 +++++++++++++++++ .../kotlin/net/corda/node/hsm/HsmSimulator.kt | 213 + .../config/NodeConfigurationImplTest.kt | 3 +- .../utimaco/UtimacoCryptoServiceTest.kt | 23 + .../services/keys/cryptoservice/utimaco/pw | 1 + .../services/keys/cryptoservice/utimaco/uname | 1 + .../cryptoservice/utimaco/utimaco_config.yml | 20 + .../testing/node/internal/DriverDSLImpl.kt | 26 +- 26 files changed, 5578 insertions(+), 27 deletions(-) create mode 100644 docs/source/corda-hsm.rst create mode 100644 node/lib/CryptoServerJCE.jar create mode 100644 node/src/integration-test/kotlin/net/corda/node/services/keys/cryptoservice/utimaco/Utils.kt create mode 100644 node/src/integration-test/kotlin/net/corda/node/services/keys/cryptoservice/utimaco/UtimacoCryptoServiceIntegrationTest.kt create mode 100644 node/src/integration-test/kotlin/net/corda/node/services/keys/cryptoservice/utimaco/UtimacoNodeRegistrationTest.kt create mode 100644 node/src/integration-test/kotlin/net/corda/node/utilities/registration/TestDoorman.kt create mode 100755 node/src/integration-test/resources/net/corda/node/services/keys/cryptoservice/utimaco/ADMIN.keykey create mode 100644 node/src/integration-test/resources/net/corda/node/services/keys/cryptoservice/utimaco/utimaco_config.yml create mode 100644 node/src/main/kotlin/net/corda/node/services/keys/cryptoservice/utimaco/UtimacoCryptoService.kt create mode 100644 node/src/main/resources/net/corda/node/services/keys/cryptoservice/utimaco/hsm_errors create mode 100644 node/src/test/kotlin/net/corda/node/hsm/HsmSimulator.kt create mode 100644 node/src/test/kotlin/net/corda/node/services/keys/cryptoservice/utimaco/UtimacoCryptoServiceTest.kt create mode 100644 node/src/test/resources/net/corda/node/services/keys/cryptoservice/utimaco/pw create mode 100644 node/src/test/resources/net/corda/node/services/keys/cryptoservice/utimaco/uname create mode 100644 node/src/test/resources/net/corda/node/services/keys/cryptoservice/utimaco/utimaco_config.yml diff --git a/.idea/compiler.xml b/.idea/compiler.xml index 27f4c774c5..d9e19c1d1d 100644 --- a/.idea/compiler.xml +++ b/.idea/compiler.xml @@ -49,6 +49,10 @@ + + + + diff --git a/docs/source/corda-hsm.rst b/docs/source/corda-hsm.rst new file mode 100644 index 0000000000..b251df7b35 --- /dev/null +++ b/docs/source/corda-hsm.rst @@ -0,0 +1,7 @@ +Configuring the node to use the Utimaco HSM +================== + +.. contents:: + +TODO +------- \ No newline at end of file diff --git a/node-api/src/main/kotlin/net/corda/nodeapi/internal/crypto/X509Utilities.kt b/node-api/src/main/kotlin/net/corda/nodeapi/internal/crypto/X509Utilities.kt index 87618d4e52..e78e63716f 100644 --- a/node-api/src/main/kotlin/net/corda/nodeapi/internal/crypto/X509Utilities.kt +++ b/node-api/src/main/kotlin/net/corda/nodeapi/internal/crypto/X509Utilities.kt @@ -38,6 +38,8 @@ import java.util.* import javax.security.auth.x500.X500Principal object X509Utilities { + // Note that this default value only applies to BCCryptoService. Other implementations of CryptoService may have to use different + // schemes (for instance `UtimacoCryptoService.DEFAULT_IDENTITY_SIGNATURE_SCHEME`). val DEFAULT_IDENTITY_SIGNATURE_SCHEME = Crypto.EDDSA_ED25519_SHA512 val DEFAULT_TLS_SIGNATURE_SCHEME = Crypto.ECDSA_SECP256R1_SHA256 diff --git a/node/build.gradle b/node/build.gradle index e70fd037d4..afd01a45c7 100644 --- a/node/build.gradle +++ b/node/build.gradle @@ -75,6 +75,10 @@ dependencies { compile project(':common-validation') compile project(':common-configuration-parsing') + // Utimaco HSM + compileOnly fileTree(dir: 'lib', include: 'CryptoServer*.jar') + testCompile fileTree(dir: 'lib', include: 'CryptoServer*.jar') + // Log4J: logging framework (with SLF4J bindings) compile "org.apache.logging.log4j:log4j-slf4j-impl:${log4j_version}" compile "org.apache.logging.log4j:log4j-web:${log4j_version}" @@ -183,6 +187,9 @@ dependencies { testCompile "org.glassfish.jersey.containers:jersey-container-servlet-core:${jersey_version}" testCompile "org.glassfish.jersey.containers:jersey-container-jetty-http:${jersey_version}" + // Spotify Docker client for using docker containers in integration tests + testCompile "com.spotify:docker-client:8.9.1" + // Add runtime-only dependency on the JDBC driver for the specified DB provider (used in database integration tests) def DB_PROVIDER = System.getProperty("custom.databaseProvider") switch (DB_PROVIDER) { diff --git a/node/capsule/build.gradle b/node/capsule/build.gradle index f88b5ad5e7..52ad2f0225 100644 --- a/node/capsule/build.gradle +++ b/node/capsule/build.gradle @@ -51,9 +51,11 @@ task buildCordaJAR(type: FatCapsule, dependsOn: project(':node').tasks.jar) { ) from configurations.capsuleRuntime.files.collect { zipTree(it) } + // Exclude the binaries for the Utimaco HSM as we cannot distribute them. + exclude('**/CryptoServer*.jar') + capsuleManifest { applicationVersion = corda_release_version - // See experimental/quasar-hook/README.md for how to generate. javaAgents = ["quasar-core-${quasar_version}-jdk8.jar=${quasarExcludeExpression}"] systemProperties['visualvm.display.name'] = 'CordaEnterprise' diff --git a/node/lib/CryptoServerJCE.jar b/node/lib/CryptoServerJCE.jar new file mode 100644 index 0000000000000000000000000000000000000000..913d72af308ecc4486893ba0d7ae1b33f061656c GIT binary patch literal 522059 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
  • G7;GO&s`lIkO>*LzV+s6C5>|4Db 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

    6v-^m3QMSv9L-m(<-^(S1SPp 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

    c)}(oBqGC<%BH7qD$_Wr>pSW|{ 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

    g`kcWegE-C5pyP=F{a4Ki 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

    I)b7)tDbvvJJHDD( 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

    w0!cOGVrd00Ofqwg7jH99 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 I7@URw0cc^S { + UtimacoCryptoService.fromConfig(config) { + UtimacoCryptoService.UtimacoCredentials("invalid", "invalid".toByteArray()) + } + } + } + + @Test + fun `When credentials become incorrect, should throw UtimacoHSMException`() { + var pw = "INTEGRATION_TEST" + val cryptoService = UtimacoCryptoService.fromConfig(config) { UtimacoCryptoService.UtimacoCredentials("INTEGRATION_TEST", pw.toByteArray()) } + cryptoService.logOff() + pw = "foo" + assertFailsWith { cryptoService.generateKeyPair("foo", Crypto.ECDSA_SECP256R1_SHA256.schemeNumberID) } + } + + @Test + fun `When connection cannot be established, should throw ConnectionException`() { + val invalidConfig = testConfig(1) + assertFailsWith { + UtimacoCryptoService.fromConfig(invalidConfig, login) + } + } + + @Test + fun `When alias contains illegal characters, should throw `() { + val cryptoService = UtimacoCryptoService.fromConfig(config, login) + val alias = "a".repeat(257) + assertFailsWith { cryptoService.generateKeyPair(alias, Crypto.ECDSA_SECP256R1_SHA256.schemeNumberID) } + } + + @Test + fun `Handles re-authentication properly`() { + val cryptoService = UtimacoCryptoService.fromConfig(config, login) + val alias = UUID.randomUUID().toString() + cryptoService.logOff() + val pubKey = cryptoService.generateKeyPair(alias, Crypto.ECDSA_SECP256R1_SHA256.schemeNumberID) + assertTrue { cryptoService.containsKey(alias) } + val data = UUID.randomUUID().toString().toByteArray() + cryptoService.logOff() + val signed = cryptoService.sign(alias, data) + Crypto.doVerify(pubKey, signed, data) + } + + @Test + fun `Generate ECDSA key with r1 curve, then sign and verify data`() { + val cryptoService = UtimacoCryptoService.fromConfig(config, login) + val alias = UUID.randomUUID().toString() + val pubKey = cryptoService.generateKeyPair(alias, Crypto.ECDSA_SECP256R1_SHA256.schemeNumberID) + assertTrue { cryptoService.containsKey(alias) } + val data = UUID.randomUUID().toString().toByteArray() + val signed = cryptoService.sign(alias, data) + Crypto.doVerify(pubKey, signed, data) + } + + @Test + fun `Generate ECDSA key with k1 curve, then sign and verify data`() { + val cryptoService = UtimacoCryptoService.fromConfig(config, login) + val alias = UUID.randomUUID().toString() + val pubKey = cryptoService.generateKeyPair(alias, Crypto.ECDSA_SECP256K1_SHA256.schemeNumberID) + assertTrue { cryptoService.containsKey(alias) } + val data = UUID.randomUUID().toString().toByteArray() + val signed = cryptoService.sign(alias, data) + Crypto.doVerify(pubKey, signed, data) + } + + @Test + fun `Generate RSA key, then sign and verify data`() { + val cryptoService = UtimacoCryptoService.fromConfig(config, login) + val alias = UUID.randomUUID().toString() + val pubKey = cryptoService.generateKeyPair(alias, Crypto.RSA_SHA256.schemeNumberID) + assertTrue { cryptoService.containsKey(alias) } + val data = UUID.randomUUID().toString().toByteArray() + val signed = cryptoService.sign(alias, data) + Crypto.doVerify(pubKey, signed, data) + } + + @Test + fun `When key does not exist, signing should throw`() { + val cryptoService = UtimacoCryptoService.fromConfig(config, login) + val alias = UUID.randomUUID().toString() + assertFalse { cryptoService.containsKey(alias) } + val data = UUID.randomUUID().toString().toByteArray() + assertFailsWith { cryptoService.sign(alias, data) } + } + + @Test + fun `When key does not exist, getPublicKey should return null`() { + val cryptoService = UtimacoCryptoService.fromConfig(config, login) + val alias = UUID.randomUUID().toString() + assertFalse { cryptoService.containsKey(alias) } + assertNull(cryptoService.getPublicKey(alias)) + } + + @Test + fun `When key does not exist, getContentSigner should throw`() { + val cryptoService = UtimacoCryptoService.fromConfig(config) + { UtimacoCryptoService.UtimacoCredentials("INTEGRATION_TEST", "INTEGRATION_TEST".toByteArray()) } + val alias = UUID.randomUUID().toString() + assertFalse { cryptoService.containsKey(alias) } + assertFailsWith { cryptoService.getSigner(alias) } + } + + @Test + fun `Content signer works with X509Utilities`() { + val cryptoService = UtimacoCryptoService.fromConfig(config, login) + val alias = UUID.randomUUID().toString() + val pubKey = cryptoService.generateKeyPair(alias, Crypto.ECDSA_SECP256R1_SHA256.schemeNumberID) + val signer = cryptoService.getSigner(alias) + val otherAlias = UUID.randomUUID().toString() + val otherPubKey = cryptoService.generateKeyPair(otherAlias, Crypto.ECDSA_SECP256R1_SHA256.schemeNumberID) + val issuer = Party(DUMMY_BANK_A_NAME, pubKey) + val partyAndCert = getTestPartyAndCertificate(issuer) + val issuerCert = partyAndCert.certificate + val window = X509Utilities.getCertificateValidityWindow(Duration.ZERO, 3650.days, issuerCert) + val ourCertificate = X509Utilities.createCertificate( + CertificateType.CONFIDENTIAL_LEGAL_IDENTITY, + issuerCert.subjectX500Principal, + issuerCert.publicKey, + signer, + partyAndCert.name.x500Principal, + otherPubKey, + window) + ourCertificate.checkValidity() + } + + @Test + fun `login with key file`() { + // the admin user of the simulator is set up with key-file login + val keyFile = UtimacoCryptoServiceIntegrationTest::class.java.getResource("ADMIN.keykey").toPath() + val username = "ADMIN" + val pw = "utimaco".toByteArray() + val conf = config.copy(authThreshold = 0) // because auth state for the admin user is 570425344 + val cryptoService = UtimacoCryptoService.fromConfig(conf) { UtimacoCryptoService.UtimacoCredentials(username, pw, keyFile) } + // the admin user does not have permission to access or create keys, so this operation will fail + assertFailsWith { cryptoService.generateKeyPair("no", Crypto.ECDSA_SECP256R1_SHA256.schemeNumberID) } + } +} \ No newline at end of file diff --git a/node/src/integration-test/kotlin/net/corda/node/services/keys/cryptoservice/utimaco/UtimacoNodeRegistrationTest.kt b/node/src/integration-test/kotlin/net/corda/node/services/keys/cryptoservice/utimaco/UtimacoNodeRegistrationTest.kt new file mode 100644 index 0000000000..7db1cc1e70 --- /dev/null +++ b/node/src/integration-test/kotlin/net/corda/node/services/keys/cryptoservice/utimaco/UtimacoNodeRegistrationTest.kt @@ -0,0 +1,123 @@ +package net.corda.node.services.keys.cryptoservice.utimaco + +import com.typesafe.config.ConfigFactory +import net.corda.core.identity.CordaX500Name +import net.corda.core.internal.concurrent.transpose +import net.corda.core.internal.toPath +import net.corda.core.messaging.startFlow +import net.corda.core.utilities.OpaqueBytes +import net.corda.core.utilities.getOrThrow +import net.corda.finance.DOLLARS +import net.corda.finance.flows.CashIssueAndPaymentFlow +import net.corda.node.utilities.registration.TestDoorman +import net.corda.testing.common.internal.testNetworkParameters +import net.corda.testing.core.SerializationEnvironmentRule +import net.corda.testing.core.singleIdentity +import net.corda.testing.internal.DEV_ROOT_CA +import net.corda.testing.internal.IntegrationTest +import net.corda.testing.internal.IntegrationTestSchemas +import net.corda.testing.node.NotarySpec +import net.corda.testing.node.internal.DriverDSLImpl +import net.corda.testing.node.internal.SharedCompatibilityZoneParams +import net.corda.testing.node.internal.internalDriver +import org.apache.commons.io.FileUtils +import org.assertj.core.api.Assertions +import org.junit.ClassRule +import org.junit.Rule +import org.junit.Test +import org.junit.rules.TemporaryFolder +import net.corda.node.hsm.HsmSimulator +import org.assertj.core.api.Assertions.assertThat +import java.io.File +import java.net.URL +import java.nio.charset.Charset + +class UtimacoNodeRegistrationTest : IntegrationTest() { + + @Rule + @JvmField + val doorman: TestDoorman = TestDoorman() + + @Rule + @JvmField + val configFolder = TemporaryFolder() + + @Rule + @JvmField + val testSerialization = SerializationEnvironmentRule(true) + + @Rule + @JvmField + val hsmSimulator: HsmSimulator = HsmSimulator() + + companion object { + @ClassRule + @JvmField + val databaseSchemas = IntegrationTestSchemas("NotaryService", "Alice", "Genevieve") + + private val notaryName = CordaX500Name("NotaryService", "Zurich", "CH") + private val aliceName = CordaX500Name("Alice", "London", "GB") + private val genevieveName = CordaX500Name("Genevieve", "London", "GB") + } + + @Test + fun `node registration with one node backed by Utimaco HSM`() { + + val tmpUtimacoConfig = createTempUtimacoConfig() + + val compatibilityZone = SharedCompatibilityZoneParams( + URL("http://${doorman.serverHostAndPort}"), + null, + publishNotaries = { doorman.server.networkParameters = testNetworkParameters(it) }, + rootCert = DEV_ROOT_CA.certificate) + internalDriver( + portAllocation = doorman.portAllocation, + compatibilityZone = compatibilityZone, + initialiseSerialization = false, + notarySpecs = listOf(NotarySpec(notaryName)), + cordappsForAllNodes = DriverDSLImpl.cordappsInCurrentAndAdditionalPackages("net.corda.finance"), + notaryCustomOverrides = mapOf("devMode" to false) + ) { + val (alice, genevieve) = listOf( + startNode(providedName = aliceName, customOverrides = mapOf( + "devMode" to false, + "cryptoServiceName" to "UTIMACO", + "cryptoServiceConf" to tmpUtimacoConfig + )), + startNode(providedName = genevieveName, customOverrides = mapOf("devMode" to false)) + ).transpose().getOrThrow() + + Assertions.assertThat(doorman.registrationHandler.idsPolled).containsOnly( + aliceName.organisation, + genevieveName.organisation, + notaryName.organisation) + + // Check the nodes can communicate among themselves (and the notary). + val anonymous = false + val result = alice.rpc.startFlow( + ::CashIssueAndPaymentFlow, + 1000.DOLLARS, + OpaqueBytes.of(12), + genevieve.nodeInfo.singleIdentity(), + anonymous, + defaultNotaryIdentity + ).returnValue.getOrThrow() + + // make sure the transaction was actually signed by the key in the hsm + val utimacoCryptoService = UtimacoCryptoService.fromConfigurationFile(File(tmpUtimacoConfig).toPath()) + val alicePubKey = utimacoCryptoService.getPublicKey("identity-private-key") + assertThat(alicePubKey).isNotNull() + assertThat(result.stx.sigs.map { it.by.encoded }.filter { it.contentEquals(alicePubKey!!.encoded) }).hasSize(1) + assertThat(result.stx.sigs.single { it.by.encoded.contentEquals(alicePubKey!!.encoded) }.isValid(result.stx.id)) + } + } + + private fun createTempUtimacoConfig(): String { + val utimacoConfig = ConfigFactory.parseFile(javaClass.getResource("utimaco_config.yml").toPath().toFile()) + val portConfig = ConfigFactory.parseMap(mapOf("provider.port" to hsmSimulator.port)) + val config = portConfig.withFallback(utimacoConfig) + val tmpConfigFile = configFolder.newFile("utimaco_config.yml") + FileUtils.writeStringToFile(tmpConfigFile, config.root().render(), Charset.defaultCharset()) + return tmpConfigFile.absolutePath + } +} \ No newline at end of file diff --git a/node/src/integration-test/kotlin/net/corda/node/utilities/registration/TestDoorman.kt b/node/src/integration-test/kotlin/net/corda/node/utilities/registration/TestDoorman.kt new file mode 100644 index 0000000000..a31870e64b --- /dev/null +++ b/node/src/integration-test/kotlin/net/corda/node/utilities/registration/TestDoorman.kt @@ -0,0 +1,121 @@ +package net.corda.node.utilities.registration + +import net.corda.core.identity.CordaX500Name +import net.corda.core.internal.logElapsedTime +import net.corda.core.internal.readFully +import net.corda.core.utilities.NetworkHostAndPort +import net.corda.core.utilities.loggerFor +import net.corda.core.utilities.seconds +import net.corda.nodeapi.internal.crypto.CertificateAndKeyPair +import net.corda.nodeapi.internal.crypto.CertificateType +import net.corda.nodeapi.internal.crypto.X509Utilities +import net.corda.testing.core.SerializationEnvironmentRule +import net.corda.testing.driver.PortAllocation +import net.corda.testing.internal.DEV_ROOT_CA +import net.corda.testing.internal.IntegrationTest +import net.corda.testing.node.internal.network.NetworkMapServer +import org.bouncycastle.pkcs.PKCS10CertificationRequest +import org.bouncycastle.pkcs.jcajce.JcaPKCS10CertificationRequest +import org.junit.After +import org.junit.Before +import org.junit.Rule +import org.junit.rules.ExternalResource +import java.io.ByteArrayOutputStream +import java.io.InputStream +import java.security.KeyPair +import java.security.cert.CertPath +import java.security.cert.Certificate +import java.security.cert.X509Certificate +import java.util.concurrent.ConcurrentHashMap +import java.util.concurrent.ConcurrentSkipListSet +import java.util.zip.ZipEntry +import java.util.zip.ZipOutputStream +import javax.ws.rs.* +import javax.ws.rs.core.MediaType +import javax.ws.rs.core.Response + +class TestDoorman: ExternalResource() { + + internal val portAllocation = PortAllocation.Incremental(13000) + internal val registrationHandler = RegistrationHandler(DEV_ROOT_CA) + internal lateinit var server: NetworkMapServer + internal lateinit var serverHostAndPort: NetworkHostAndPort + + override fun before() { + server = NetworkMapServer( + pollInterval = 1.seconds, + hostAndPort = portAllocation.nextHostAndPort(), + myHostNameValue = "localhost", + additionalServices = *arrayOf(registrationHandler)) + serverHostAndPort = server.start() + } + + override fun after() { + server.close() + } + + @Path("certificate") + class RegistrationHandler(private val rootCertAndKeyPair: CertificateAndKeyPair) { + private val certPaths = ConcurrentHashMap() + val idsPolled = ConcurrentSkipListSet() + + companion object { + val log = loggerFor() + } + + @POST + @Consumes(MediaType.APPLICATION_OCTET_STREAM) + @Produces(MediaType.TEXT_PLAIN) + fun registration(input: InputStream): Response { + return log.logElapsedTime("Registration") { + val certificationRequest = JcaPKCS10CertificationRequest(input.readFully()) + val (certPath, name) = createSignedClientCertificate( + certificationRequest, + rootCertAndKeyPair.keyPair, + listOf(rootCertAndKeyPair.certificate)) + require(!name.organisation.contains("\\s".toRegex())) { "Whitespace in the organisation name not supported" } + certPaths[name.organisation] = certPath + Response.ok(name.organisation).build() + } + } + + @GET + @Path("{id}") + fun reply(@PathParam("id") id: String): Response { + return log.logElapsedTime("Reply by Id") { + idsPolled += id + buildResponse(certPaths[id]!!.certificates) + } + } + + private fun buildResponse(certificates: List): Response { + val baos = ByteArrayOutputStream() + ZipOutputStream(baos).use { zip -> + listOf(X509Utilities.CORDA_CLIENT_CA, X509Utilities.CORDA_INTERMEDIATE_CA, X509Utilities.CORDA_ROOT_CA).zip(certificates).forEach { + zip.putNextEntry(ZipEntry("${it.first}.cer")) + zip.write(it.second.encoded) + zip.closeEntry() + } + } + return Response.ok(baos.toByteArray()) + .type("application/zip") + .header("Content-Disposition", "attachment; filename=\"certificates.zip\"").build() + } + + private fun createSignedClientCertificate(certificationRequest: PKCS10CertificationRequest, + caKeyPair: KeyPair, + caCertPath: List): Pair { + val request = JcaPKCS10CertificationRequest(certificationRequest) + val name = CordaX500Name.parse(request.subject.toString()) + val nodeCaCert = X509Utilities.createCertificate( + CertificateType.NODE_CA, + caCertPath[0], + caKeyPair, + name.x500Principal, + request.publicKey, + nameConstraints = null) + val certPath = X509Utilities.buildCertPath(nodeCaCert, caCertPath) + return Pair(certPath, name) + } + } +} \ No newline at end of file diff --git a/node/src/integration-test/resources/net/corda/node/services/keys/cryptoservice/utimaco/ADMIN.keykey b/node/src/integration-test/resources/net/corda/node/services/keys/cryptoservice/utimaco/ADMIN.keykey new file mode 100755 index 0000000000..4b245e4c62 --- /dev/null +++ b/node/src/integration-test/resources/net/corda/node/services/keys/cryptoservice/utimaco/ADMIN.keykey @@ -0,0 +1,10 @@ +# RSA key +MOD=B7F3893AAB150BAFECC1931097893C38751AD728DD56DEB8F1A41097755B5E0664FF32FD902B04EDCFD5E2EF8330FDF07C15F9C2229E53F71446EEDBC82BEA3D1679B2BBC07B269D0832D098B3478189CB1FD9F770ED5231EE9AA05BEBE2D0F13F4813F919EB8B3B14AEEE0EE22EDEB152CB5B5798712CDE28273B7E5AB232EB +PEXP=010001 +SEXP=0C69C84467C01B524B5942B9D76800E2D47033BDC3B5F580A879C84ED8320AB5C6C1FBE8657EA9ADFC9CF3DBF2CFEF0AF7ECA9B6828C89A0FE42CD2292AEF7F6FB0B8BC61EAE635CE3ACAADACBB0609666266D28B2760483F169C05E672C5C88D2B5B0F66C6474AA7E75A3D526EFBD865D4CD8457DD8F9D31C4B095827C6B3AD +P=D19916EC3E718F393467AD608813306B58F763EF6F1A8FE1251AAAE720D1A6F0E552F95DE53C0FECDFFE0ED9E541FC00F83393C9E1B26789D3A779ACA9A5C905 +Q=E0ACED5548DFF0A24147FEDE87B22505DC11FBC4F080C3E17A11BA588AE2A40AFCFDF352F9031F8F344E909C2ECCD912E2BA6B864C2DE6CFB4F50E03C17F0F2F +U=9EC636117E558F3A1C9E03E54A1FADD9F0A6728F34C5842B6F557D58C92BCB243FDB62AA9751B5AA24B4B5129B253ED97D3A69818C7AD2AA6483C2473C1E52F7 +dP=9D165DC5C5AF1AA6C70E05355A06F7BD1CBA9D5DB0297A3845B4CCEDD8FD085F77A04E60FF139AE3EFA4DBC0974072FCCF08E8F4DF80F474A9FAD50881454D79 +dQ=7332D781EA1AC0A4413AAC08E7A4C4ECEB38E151CA4B0BA499D56B29A914AA2DE42845D1DE51E6A5A39940F683DC8ED4EB21D0AE0C7360AC5149710525FA830B +OWNER=Utimaco IS GmbH / Init-Dev-1-Key diff --git a/node/src/integration-test/resources/net/corda/node/services/keys/cryptoservice/utimaco/utimaco_config.yml b/node/src/integration-test/resources/net/corda/node/services/keys/cryptoservice/utimaco/utimaco_config.yml new file mode 100644 index 0000000000..0c9f710ee5 --- /dev/null +++ b/node/src/integration-test/resources/net/corda/node/services/keys/cryptoservice/utimaco/utimaco_config.yml @@ -0,0 +1,21 @@ +provider = { + host = "127.0.0.1" + port = 3001 + connectionTimeout = 60000 + endSessionOnShutdown = true + keepSessionAlive = true + keyGroup = "*" + keySpecifier = 2 + storeKeysExternal = false +} +keyGeneration = { + keyOverride = true + keyExport = false + keyGenMechanism = 4 + keySpecifier = 2 +} +authThreshold = 1 +authentication = { + username = INTEGRATION_TEST + password = INTEGRATION_TEST +} \ No newline at end of file diff --git a/node/src/main/kotlin/net/corda/node/internal/AbstractNode.kt b/node/src/main/kotlin/net/corda/node/internal/AbstractNode.kt index 0344a734e7..3414e53b48 100644 --- a/node/src/main/kotlin/net/corda/node/internal/AbstractNode.kt +++ b/node/src/main/kotlin/net/corda/node/internal/AbstractNode.kt @@ -9,11 +9,8 @@ import net.corda.confidential.SwapIdentitiesHandler import net.corda.core.CordaException import net.corda.core.concurrent.CordaFuture import net.corda.core.context.InvocationContext -import net.corda.core.crypto.DigitalSignature -import net.corda.core.crypto.SecureHash -import net.corda.core.crypto.isCRLDistributionPointBlacklisted +import net.corda.core.crypto.* import net.corda.core.crypto.internal.AliasPrivateKey -import net.corda.core.crypto.newSecureRandom import net.corda.core.flows.* import net.corda.core.identity.AbstractParty import net.corda.core.identity.CordaX500Name @@ -55,6 +52,7 @@ import net.corda.node.services.identity.PersistentIdentityService import net.corda.node.services.keys.BasicHSMKeyManagementService import net.corda.node.services.keys.KeyManagementServiceInternal import net.corda.node.services.keys.cryptoservice.BCCryptoService +import net.corda.node.services.keys.cryptoservice.utimaco.UtimacoCryptoService import net.corda.node.services.messaging.DeduplicationHandler import net.corda.node.services.messaging.MessagingService import net.corda.node.services.network.NetworkMapClient @@ -952,7 +950,10 @@ abstract class AbstractNode(val configuration: NodeConfiguration, return PartyAndCertificate(X509Utilities.buildCertPath(identityCertPath)) } - protected open fun generateKeyPair(alias: String) = cryptoService.generateKeyPair(alias, X509Utilities.DEFAULT_IDENTITY_SIGNATURE_SCHEME.schemeNumberID) + protected open fun generateKeyPair(alias: String) = when (cryptoService) { + is UtimacoCryptoService -> cryptoService.generateKeyPair(alias, UtimacoCryptoService.DEFAULT_IDENTITY_SIGNATURE_SCHEME.schemeNumberID) + else -> cryptoService.generateKeyPair(alias, X509Utilities.DEFAULT_IDENTITY_SIGNATURE_SCHEME.schemeNumberID) + } protected open fun makeVaultService(keyManagementService: KeyManagementService, services: ServicesForResolution, diff --git a/node/src/main/kotlin/net/corda/node/services/config/NodeConfiguration.kt b/node/src/main/kotlin/net/corda/node/services/config/NodeConfiguration.kt index 209d3ffde3..666c842a3f 100644 --- a/node/src/main/kotlin/net/corda/node/services/config/NodeConfiguration.kt +++ b/node/src/main/kotlin/net/corda/node/services/config/NodeConfiguration.kt @@ -14,6 +14,10 @@ import net.corda.node.services.keys.cryptoservice.SupportedCryptoServices import net.corda.nodeapi.internal.config.FileBasedCertificateStoreSupplier import net.corda.nodeapi.internal.config.MutualSslConfiguration import net.corda.nodeapi.internal.config.User +import net.corda.node.services.keys.cryptoservice.utimaco.UtimacoCryptoService +import net.corda.nodeapi.BrokerRpcSslOptions +import net.corda.nodeapi.internal.DEV_PUB_KEY_HASHES +import net.corda.nodeapi.internal.config.* import net.corda.nodeapi.internal.cryptoservice.CryptoService import net.corda.nodeapi.internal.persistence.DatabaseConfig import net.corda.tools.shell.SSHDConfiguration @@ -89,7 +93,7 @@ interface NodeConfiguration { // TODO At the moment this is just an identifier for the desired CryptoService engine. Consider using a classname to // to allow for pluggable implementations. val cryptoServiceName: SupportedCryptoServices? - val cryptoServiceConf: String? // Location for the cryptoService conf file. + val cryptoServiceConf: Path? // Location for the cryptoService conf file. val networkParameterAcceptanceSettings: NetworkParameterAcceptanceSettings @@ -115,8 +119,9 @@ interface NodeConfiguration { fun makeCryptoService(): CryptoService { return when(cryptoServiceName) { - // Pick default BCCryptoService when null. - SupportedCryptoServices.BC_SIMPLE, null -> BCCryptoService(this.myLegalName.x500Principal, this.signingCertificateStore) + SupportedCryptoServices.BC_SIMPLE -> BCCryptoService(this.myLegalName.x500Principal, this.signingCertificateStore) + SupportedCryptoServices.UTIMACO -> UtimacoCryptoService.fromConfigurationFile(cryptoServiceConf) + null -> BCCryptoService(this.myLegalName.x500Principal, this.signingCertificateStore) // Pick default BCCryptoService when null. } } } diff --git a/node/src/main/kotlin/net/corda/node/services/config/NodeConfigurationImpl.kt b/node/src/main/kotlin/net/corda/node/services/config/NodeConfigurationImpl.kt index 4cd571763d..d2c4745e1c 100644 --- a/node/src/main/kotlin/net/corda/node/services/config/NodeConfigurationImpl.kt +++ b/node/src/main/kotlin/net/corda/node/services/config/NodeConfigurationImpl.kt @@ -82,7 +82,7 @@ data class NodeConfigurationImpl( override val flowOverrides: FlowOverrideConfig?, override val cordappSignerKeyFingerprintBlacklist: List = Defaults.cordappSignerKeyFingerprintBlacklist, override val cryptoServiceName: SupportedCryptoServices? = Defaults.cryptoServiceName, - override val cryptoServiceConf: String? = Defaults.cryptoServiceConf, + override val cryptoServiceConf: Path? = Defaults.cryptoServiceConf, override val networkParameterAcceptanceSettings: NetworkParameterAcceptanceSettings = Defaults.networkParameterAcceptanceSettings ) : NodeConfiguration { internal object Defaults { @@ -119,7 +119,7 @@ data class NodeConfigurationImpl( val enableSNI: Boolean = true val useOpenSsl: Boolean = false val cryptoServiceName: SupportedCryptoServices? = null - val cryptoServiceConf: String? = null + val cryptoServiceConf: Path? = null val networkParameterAcceptanceSettings: NetworkParameterAcceptanceSettings = NetworkParameterAcceptanceSettings() fun cordappsDirectories(baseDirectory: Path) = listOf(baseDirectory / CORDAPPS_DIR_NAME_DEFAULT) diff --git a/node/src/main/kotlin/net/corda/node/services/config/schema/v1/V1NodeConfigurationSpec.kt b/node/src/main/kotlin/net/corda/node/services/config/schema/v1/V1NodeConfigurationSpec.kt index 7c0ed9313f..f9e7441d4d 100644 --- a/node/src/main/kotlin/net/corda/node/services/config/schema/v1/V1NodeConfigurationSpec.kt +++ b/node/src/main/kotlin/net/corda/node/services/config/schema/v1/V1NodeConfigurationSpec.kt @@ -75,7 +75,7 @@ internal object V1NodeConfigurationSpec : Configuration.Specification UtimacoCredentials) : CryptoService { + + private val keyStore: KeyStore + private val keyTemplate: CryptoServerCXI.KeyAttributes + + init { + try { + keyTemplate = toKeyTemplate(keyConfig) + authenticate(auth()) + val authState = cryptoServerProvider.cryptoServer.authState + require((authState and 0x0000000F) >= authThreshold) { + "Insufficient authentication: auth state is $authState, at least $authThreshold is required." + } + keyStore = KeyStore.getInstance("CryptoServer", cryptoServerProvider) + keyStore.load(null, null) + } catch (e: CryptoServerAPI.CryptoServerException) { + throw UtimacoHSMException(HsmErrors.errors[e.ErrorCode], e) + } + } + + private inline fun withAuthentication(block: () -> T): T { + return withErrorMapping { + if (cryptoServerProvider.cryptoServer.authState and 0x0000000F >= authThreshold) { + block() + } else { + authenticate(auth()) + block() + } + } + } + + private inline fun withErrorMapping(block: () -> T): T { + try { + return block() + } catch (e: CryptoServerAPI.CryptoServerException) { + throw UtimacoHSMException(HsmErrors.errors[e.ErrorCode], e) + } + } + + override fun generateKeyPair(alias: String, schemeNumberID: Int): PublicKey { + return generateKeyPair(alias, schemeNumberID, keyTemplate) + } + + override fun containsKey(alias: String): Boolean { + try { + return withAuthentication { + keyStore.containsAlias(alias) + } + } catch (e: CryptoServerAPI.CryptoServerException) { + HsmErrors.errors[e.ErrorCode] + throw UtimacoHSMException(HsmErrors.errors[e.ErrorCode], e) + } + } + + override fun getPublicKey(alias: String): PublicKey? { + try { + return withAuthentication { + keyStore.getCertificate(alias)?.publicKey?.let { + KeyFactory.getInstance(it.algorithm).generatePublic(X509EncodedKeySpec(it.encoded)) + } + } + } catch (e: CryptoServerAPI.CryptoServerException) { + HsmErrors.errors[e.ErrorCode] + throw UtimacoHSMException(HsmErrors.errors[e.ErrorCode], e) + } + } + + override fun sign(alias: String, data: ByteArray): ByteArray { + try { + return withAuthentication { + (keyStore.getKey(alias, null) as PrivateKey?)?.let { + val algorithm = if (it.algorithm == "RSA") { + "SHA256withRSA" + } else { + "SHA256withECDSA" + } + val signature = Signature.getInstance(algorithm, cryptoServerProvider) + signature.initSign(it) + signature.update(data) + signature.sign() + } ?: throw CryptoServiceException("No key found for alias $alias") + } + } catch (e: CryptoServerAPI.CryptoServerException) { + HsmErrors.errors[e.ErrorCode] + throw UtimacoHSMException(HsmErrors.errors[e.ErrorCode], e) + } + } + + override fun getSigner(alias: String): ContentSigner { + return object : ContentSigner { + private val publicKey: PublicKey = getPublicKey(alias) ?: throw CryptoServiceException("No key found for alias $alias") + private val sigAlgID: AlgorithmIdentifier = Crypto.findSignatureScheme(publicKey).signatureOID + + private val baos = ByteArrayOutputStream() + override fun getAlgorithmIdentifier(): AlgorithmIdentifier = sigAlgID + override fun getOutputStream(): OutputStream = baos + override fun getSignature(): ByteArray = sign(alias, baos.toByteArray()) + } + } + + fun generateKeyPair(alias: String, schemeId: Int, keyTemplate: CryptoServerCXI.KeyAttributes): PublicKey { + return withAuthentication { + val keyAttributes = attributesForScheme(keyTemplate, schemeId) + keyAttributes.name = alias + val overwrite = if (keyConfig.keyOverride) CryptoServerCXI.FLAG_OVERWRITE else 0 + cryptoServerProvider.cryptoServer.generateKey(overwrite, keyAttributes, keyConfig.keyGenMechanism) + getPublicKey(alias) ?: throw CryptoServiceException("Key generation for alias $alias succeeded, but key could not be accessed afterwards.") + } + } + + fun logOff() { + cryptoServerProvider.logoff() + } + + private fun authenticate(credentials: UtimacoCredentials) { + if (credentials.keyFile != null) { + cryptoServerProvider.loginSign(credentials.username, credentials.keyFile.toFile().absolutePath, String(credentials.password)) + } else { + cryptoServerProvider.loginPassword(credentials.username, credentials.password) + } + } + + class UtimacoHSMException(message: String?, cause: Throwable? = null) : CryptoServiceException(message, cause) + + data class UtimacoCredentials(val username: String, val password: ByteArray, val keyFile: Path? = null) + + data class UtimacoConfig( + val provider: ProviderConfig, + val keyGeneration: KeyGenerationConfiguration = KeyGenerationConfiguration(), + val authThreshold: Int = 1, + val authentication: Credentials, + val keyFile: Path? = null + ) + + data class ProviderConfig( + val host: String, + val port: Int, + val connectionTimeout: Int = 30000, + val timeout: Int = 60000, + val endSessionOnShutdown: Boolean = true, + val keepSessionAlive: Boolean = false, + val keyGroup: String = "*", + val keySpecifier: Int = -1, + val storeKeysExternal: Boolean = false + ) + + data class KeyGenerationConfiguration( + val keyGroup: String = "*", + val keySpecifier: Int = -1, + val keyOverride: Boolean = false, + val keyExport: Boolean = false, + val keyGenMechanism: Int = 4 + ) + + data class Credentials(val username: String, val password: String) + + /** + * Taken from network-services. + * Configuration class for [CryptoServerProvider] + * Currently not supported: DefaultUser,KeyStorePath,LogFile,LogLevel,LogSize + */ + internal data class CryptoServerProviderConfig( + val Device: String, + val ConnectionTimeout: Int, + val Timeout: Int, + val EndSessionOnShutdown: Int, // todo does this actually exist? docs don't mention it + val KeepSessionAlive: Int, + val KeyGroup: String, + val KeySpecifier: Int, + val StoreKeysExternal: Boolean + ) + + private fun attributesForScheme(keyTemplate: CryptoServerCXI.KeyAttributes, schemeId: Int): CryptoServerCXI.KeyAttributes { + if (schemeId !in keyAttributeForScheme.keys) { + throw NoSuchAlgorithmException("No mapping for scheme ID $schemeId.") + } + val schemeAttributes = keyAttributeForScheme[schemeId]!! + return CryptoServerCXI.KeyAttributes().apply { + specifier = keyTemplate.specifier + group = keyTemplate.group + export = keyTemplate.export + algo = schemeAttributes.algo + curve = schemeAttributes.curve + size = schemeAttributes.size + } + } + + companion object { + val DEFAULT_IDENTITY_SIGNATURE_SCHEME = Crypto.ECDSA_SECP256R1_SHA256 + + private val keyAttributeForScheme: Map = mapOf( + Crypto.ECDSA_SECP256R1_SHA256.schemeNumberID to CryptoServerCXI.KeyAttributes().apply { + algo = CryptoServerCXI.KEY_ALGO_ECDSA + setCurve("secp256r1") + }, + Crypto.ECDSA_SECP256K1_SHA256.schemeNumberID to CryptoServerCXI.KeyAttributes().apply { + algo = CryptoServerCXI.KEY_ALGO_ECDSA + setCurve("secp256k1") + }, + Crypto.RSA_SHA256.schemeNumberID to CryptoServerCXI.KeyAttributes().apply { + algo = CryptoServerCXI.KEY_ALGO_RSA + size = Crypto.RSA_SHA256.keySize!! + } + ) + + fun parseConfigFile(configFile: Path): UtimacoConfig { + val config = ConfigFactory.parseFile(configFile.toFile()) + return config.parseAs(UtimacoConfig::class) + } + + /** + * Username and password are stored in files, base64-encoded + */ + fun fileBasedAuth(usernameFile: Path, passwordFile: Path): () -> UtimacoCredentials = { + val username = String(Base64.getDecoder().decode(usernameFile.toFile().readLines().first())) + val pw = if (usernameFile == passwordFile) { + Base64.getDecoder().decode(passwordFile.toFile().readLines().get(1)) + } else { + Base64.getDecoder().decode(passwordFile.toFile().readLines().get(0)) + } + UtimacoCredentials(username, pw) + } + + fun fromConfigurationFile(configFile: Path?): UtimacoCryptoService { + val config = parseConfigFile(configFile!!) + return fromConfig(config) { UtimacoCredentials(config.authentication.username, config.authentication.password.toByteArray(), config.keyFile) } + } + + fun fromConfig(configuration: UtimacoConfig, auth: () -> UtimacoCredentials): UtimacoCryptoService { + val providerConfig = toCryptoServerProviderConfig(configuration.provider) + val cryptoServerProvider = createProvider(providerConfig) + return UtimacoCryptoService(cryptoServerProvider, configuration.keyGeneration, configuration.authThreshold, auth) + } + + /** + * Note that some attributes cannot be determined at this point, as they depend on the scheme ID + */ + private fun toKeyTemplate(config: KeyGenerationConfiguration): CryptoServerCXI.KeyAttributes { + return CryptoServerCXI.KeyAttributes().apply { + specifier = config.keySpecifier + group = config.keyGroup + export = if (config.keyExport) 1 else 0 + } + } + + private fun toCryptoServerProviderConfig(config: ProviderConfig): CryptoServerProviderConfig { + return CryptoServerProviderConfig( + "${config.port}@${config.host}", + config.connectionTimeout, + config.timeout, + if (config.endSessionOnShutdown) 1 else 0, + if (config.keepSessionAlive) 1 else 0, + config.keyGroup, + config.keySpecifier, + config.storeKeysExternal + ) + } + + /** + * Taken from network-services. + * Creates an instance of [CryptoServerProvider] configured accordingly to the passed configuration. + * + * @param config crypto server provider configuration. + * + * @return preconfigured instance of [CryptoServerProvider] + */ + private fun createProvider(config: CryptoServerProviderConfig): CryptoServerProvider { + val cfgBuffer = ByteArrayOutputStream() + val writer = cfgBuffer.writer(Charsets.UTF_8) + for (property in CryptoServerProviderConfig::class.memberProperties) { + writer.write("${property.name} = ${property.get(config)}\n") + } + writer.close() + val cfg = cfgBuffer.toByteArray().inputStream() + return CryptoServerProvider(cfg) + } + } +} + +// This code (incl. the hsm_errors file) is duplicated with the Network-Management module +object HsmErrors { + val errors: Map by lazy(HsmErrors::load) + fun load(): Map { + val errors = HashMap() + val hsmErrorsStream = HsmErrors::class.java.getResourceAsStream("hsm_errors") + hsmErrorsStream.bufferedReader().lines().reduce(null) { previous, current -> + if (previous == null) { + current + } else { + errors[java.lang.Long.decode(previous).toInt()] = current + null + } + } + return errors + } +} \ No newline at end of file diff --git a/node/src/main/resources/net/corda/node/services/keys/cryptoservice/utimaco/hsm_errors b/node/src/main/resources/net/corda/node/services/keys/cryptoservice/utimaco/hsm_errors new file mode 100644 index 0000000000..4b203b9309 --- /dev/null +++ b/node/src/main/resources/net/corda/node/services/keys/cryptoservice/utimaco/hsm_errors @@ -0,0 +1,4462 @@ +0xB000 +E_OS: CryptoServer module SMOS +0xB00001 +E_OS_SENS: SENS section +0xB0000100 +E_OS_SENS_WRITE_ERR: Sensory write error +0xB0000101 +E_OS_SENS_READ_ERR: Sensory read error +0xB0000102 +E_OS_SENS_BAD_TYPE: Bad info type +0xB0000103 +E_OS_SENS_MEM_ALLOC: Error during memory allocation +0xB0000104 +E_OS_SENS_IO_ERR: Sensory I/O error +0xB0000105 +E_OS_SENS_MK_CORR: Corrupted Master Key +0xB0000106 +E_OS_SENS_NACK: Sensory error answer +0xB0000107 +E_OS_SENS_NO_ALARM: CryptoServer not in alarm state +0xB0000108 +E_OS_SENS_READ_TIMEOUT: Sensory read timeout +0xB0000109 +E_OS_SENS_ALARM_PRESENT: Alarm still present, can't reset +0xB000010A +E_OS_SENS_MSP_TIMEOUT: Controller: read timeout +0xB000010B +E_OS_SENS_MSP_CMD: Controller: bad command +0xB000010C +E_OS_SENS_MSP_ADDR: Controller: bad address +0xB000010D +E_OS_SENS_MSP_DATA: Controller: bad data +0xB000010E +E_OS_SENS_MSP_CRC: Controller: bad CRC +0xB000010F +E_OS_SENS_BAD_CRC: Bad CRC in answer +0xB0000110 +E_OS_SENS_PARAM: Invalid parameter +0xB0000111 +E_OS_SENS_BUF_SIZE: Buffer size too small +0xB0000112 +E_OS_SENS_ANSW_LEN: Invalid length of answer data +0xB0000113 +E_OS_SENS_JOB_STATE: Invalid job state +0xB0000114 +E_OS_SENS_LOCKED: Sensory controller is locked +0xB000013 +E_OS_SENS_CTRL: Sensory Controller section +0xB0000130 +E_OS_SENS_CTRL_NACK: unknown error code +0xB0000131 +E_OS_SENS_CTRL_TIMEOUT: timeout +0xB0000132 +E_OS_SENS_CTRL_CMD: bad command +0xB0000133 +E_OS_SENS_CTRL_ADDR: bad address +0xB0000134 +E_OS_SENS_CTRL_DATA: bad data +0xB0000135 +E_OS_SENS_CTRL_CRC: bad CRC +0xB0000136 +E_OS_SENS_CTRL_I2C: I2C error +0xB0000137 +E_OS_SENS_CTRL_BUSY: currently busy +0xB00002 +E_OS_DEV: device section +0xB0000201 +E_OS_DEV_ERR: notifies if an error occurs during operation +0xB0000202 +E_OS_DEV_ALREADY_OPEN: device is used by an other session +0xB0000203 +E_OS_DEV_NAME_INVALID: illegal device name length or characterset +0xB0000204 +E_OS_DEV_MODE_INVALID: illegal mode of operation +0xB0000205 +E_OS_DEV_PARAMETER_INVALID: passed parameter illegal +0xB0000206 +E_OS_DEV_HDL_INVALID: session handle not allowed +0xB0000207 +E_OS_DEV_DATA_INVALID: corrupted data +0xB0000209 +E_OS_DEV_NO_MEM: can't allocate memory space +0xB000020A +E_OS_DEV_NO_SUCH_FUNCTION: no private module function +0xB000020B +E_OS_DEV_NO_DEVICE: no serial device available +0xB00003 +E_OS_DEV_SL: serial device section +0xB0000301 +E_OS_DEV_SL_BAD_HDL: bad handle +0xB0000302 +E_OS_DEV_SL_ALREADY_OPEN: device already open +0xB000030D +E_OS_DEV_SL_READ: read error on serial line +0xB000030E +E_OS_DEV_SL_INVALID_PARAM: parameter to be modified is invalid +0xB0000310 +E_OS_DEV_SL_PARAM_VAL: invalid parameter value to set control of SL +0xB0000311 +E_OS_DEV_SL_TIMEOUT: timeout while reading char from serial line +0xB0000312 +E_OS_DEV_SL_PARITY_ERR: parity error +0xB0000313 +E_OS_DEV_SL_OVERRUN: receiver over-run +0xB0000314 +E_OS_DEV_SL_FRAME: receiver frame error +0xB0000315 +E_OS_DEV_SL_NO_DATA: no data ready to read +0xB0000381 +E_OS_DEV_SL_TOOMANY: too many lines open +0xB0000382 +E_OS_DEV_SL_TCATTR: error setting line parameters +0xB0000383 +E_OS_DEV_SL_OPEN: can't open device +0xB0000384 +E_OS_DEV_SL_NOT_OPEN: handle not open +0xB0000385 +E_OS_DEV_SL_NO_VALID_HDL: invalid handle +0xB0000386 +E_OS_DEV_SL_NO_VALID_PARA_VALUE: invalid parameter value +0xB0000387 +E_OS_DEV_SL_NO_VALID_PARA_TYPE: invalid parameter type +0xB0000388 +E_OS_DEV_SL_READ_ERROR: error on read +0xB0000389 +E_OS_DEV_SL_READ_TIME_OUT: timeout on read +0xB000038A +E_OS_DEV_SL_WRITE_ERROR: error on write +0xB000038B +E_OS_DEV_SL_WRITE_TIME_OUT: timeout on write +0xB000038C +E_OS_DEV_SL_CTRL_ERROR: error on ioctl +0xB0000390 +E_OS_DEV_SL_NO_VALID_NAME: no valid device name +0xB0000391 +E_OS_DEV_SL_NO_VALID_BUF_SLCT: no valid Buffer selected +0xB0000392 +E_OS_DEV_SL_NO_VALID_LINE_STATE: line state parameter incorrect +0xB0000393 +E_OS_DEV_SL_NO_VALID_LINE_SLCT: line select parameter incorrect +0xB0000394 +E_OS_DEV_SL_COM_STATE: error in comunication driver +0xB0000395 +E_OS_DEV_SL_PARITY: Parity Error +0xB00004 +E_OS_DEV_I2C: i2c device section +0xB0000401 +E_OS_DEV_I2C_PARA_INV: one parameter is wrong +0xB0000402 +E_OS_DEV_I2C_NO_ACK: got no acknowledge after sending a byte +0xB0000403 +E_OS_DEV_I2C_BAD_DEVICE: bad device identifier +0xB0000404 +E_OS_DEV_I2C_NO_DEV: device does not exist +0xB00005 +E_OS_FILE: file section +0xB0000501 +E_OS_FILE_INIT: file system not initialized +0xB0000502 +E_OS_FILE_ALREADY_OPEN: the file is already opened +0xB0000503 +E_OS_FILE_ILL_NAME: file name is not allowed +0xB0000504 +E_OS_FILE_ILL_ATTRIB: invalid open mode +0xB0000505 +E_OS_FILE_NO_SUCH_PATH: the directory does not exist +0xB0000506 +E_OS_FILE_NO_SUCH_FILE: the file does not exist +0xB0000507 +E_OS_FILE_EXIST: the file doesn't / already exists +0xB0000508 +E_OS_FILE_ILL_PARAM: invalid parameter +0xB000050A +E_OS_FILE_NOT_OPEN: the file isn't open for access mode +0xB000050B +E_OS_FILE_ILL_POS: position offset not allowed +0xB000050C +E_OS_FILE_NO_MEM: no more memory space available +0xB000050D +E_OS_FILE_NO_TABLE: no bad block table +0xB000050E +E_OS_FILE_MAGIC: invalid magic tag +0xB0000510 +E_OS_FILE_FF_BUSY: flash file device is still busy +0xB0000511 +E_OS_FILE_FF_FAILED: flash file device replies an error +0xB0000513 +E_OS_FILE_FF_ADDRESS: illegal page address +0xB0000514 +E_OS_FILE_ECC: page parity error +0xB0000515 +E_OS_FILE_RDONLY: file system is read only +0xB0000516 +E_OS_FILE_HANDLE: bad file handle +0xB0000517 +E_OS_FILE_NO_SPACE: file system full +0xB0000518 +E_OS_FILE_TABLE_FULL: file table full +0xB0000519 +E_OS_FILE_CORR: file corrupted +0xB000051A +E_OS_FILE_EXDEV: different file systems +0xB000051B +E_OS_FILE_BAD_FSTYPE: bad file system type, can't mount +0xB000051C +E_OS_FILE_BAD_BAD: too many bad blocks, giving up +0xB000051D +E_OS_FILE_FF_BAD: detected bad block in flash file +0xB000051E +E_OS_FILE_GEOMETRY: bad flash page geometry +0xB000051F +E_OS_FILE_HDL_TOOMANY: too many open file handles +0xB00006 +E_OS_TASK: task section +0xB0000601 +E_OS_TASK_STACK_OVL: stack overflow +0xB0000602 +E_OS_TASK_STACK_CORR: stack corrupted +0xB0000603 +E_OS_TASK_BUFSIZE: buffer size to small +0xB0000604 +E_OS_TASK_MALLOC: memory allocation failed +0xB00007 +E_OS_AUDIT: AUDIT section +0xB0000700 +E_OS_AUDIT_EXIST: Audit file does not exist +0xB0000701 +E_OS_AUDIT_FULL: Audit files full +0xB0000702 +E_OS_AUDIT_FSFULL: File system full +0xB0000703 +E_OS_AUDIT_BUFF_TOO_SMALL: Buffer too small +0xB0000704 +E_OS_AUDIT_MALLOC: Memory allocation failed +0xB0000705 +E_OS_AUDIT_CFG_ITEM: Invalid configuration item +0xB0000706 +E_OS_AUDIT_CFG_RANGE: Configuration value out of range +0xB0000707 +E_OS_AUDIT_PARAM: Invalid parameter value +0xB0000708 +E_OS_AUDIT_INVALID_HANDLE: Invalid audit handle +0xB00008 +E_OS_MDL: MDL section +0xB0000801 +E_OS_MDL_MEM_ALLOC: Error during memory allocation +0xB0000802 +E_OS_MDL_PARA_INVALID: Invalid input parameter +0xB0000803 +E_OS_MDL_EXIST: module already exists +0xB0000804 +E_OS_MDL_TABLE: module table full +0xB0000805 +E_OS_MDL_PARAMETER: illegall parameter passed +0xB0000806 +E_OS_MDL_EVENT: event not reached +0xB0000807 +E_OS_MDL_NOT_FOUND: module not found +0xB0000808 +E_OS_MDL_WRITE: can't write module to SDRAM directory +0xB0000809 +E_OS_MDL_SLF_BAD: bad signed licence file +0xB000080A +E_OS_MDL_BL_INI: can't read bl_ini file +0xB000080B +E_OS_MDL_SLF_FOUND: SLF parameter not found +0xB000080C +E_OS_MDL_MTC_INV: invalid MTC file +0xB000080D +E_OS_MDL_MMC_INV: invalid MMC file +0xB000080E +E_OS_MDL_NO_MTC_SIG: No MTC signature present +0xB000080F +E_OS_MDL_CFG_FOUND: Config parameter not found +0xB0000810 +E_OS_MDL_HW_TYPE: Module does not match hardware type +0xB0000811 +E_OS_MDL_MSC_INV: invalid MSC file +0xB0000812 +E_OS_MDL_MSC_VERIFY_FAILED: MSC verification failed +0xB0000813 +E_OS_MDL_NOT_SUPP: Function not supported +0xB0000814 +E_OS_MDL_NOT_AVAILABLE: Function not available +0xB00009 +E_OS_MEM: memory section +0xB0000901 +E_OS_MEM_BAD_TYPE: illegal memory type +0xB0000902 +E_OS_MEM_CORR: corrupted memory structure +0xB0000903 +E_OS_MEM_BUF_SIZE: buffer size too small +0xB0000904 +E_OS_MEM_BAD_ADDR: bad memory address +0xB0000A +E_OS_STR: string section +0xB0000A01 +E_OS_STR_MALLOC: memory allocation failed +0xB0000B +E_OS_CFG: Config section +0xB0000B01 +E_OS_CFG_MALLOC: memory allocation failed +0xB0000B02 +E_OS_CFG_INVALID_PARAM: invalid parameter +0xB0000B03 +E_OS_CFG_INVALID_HDL: invalid handle +0xB0000B04 +E_OS_CFG_BAD: bad config file +0xB0000B05 +E_OS_CFG_SECT_NOT_FOUND: section not found +0xB0000B06 +E_OS_CFG_ITEM_NOT_FOUND: item not found +0xB00010 +E_OS_PCI: PCI section +0xB0001000 +E_OS_PCI_DMA_TMOUT: DMA timeout +0xB0001001 +E_OS_PCI_CANCEL: request canceled +0xB0001002 +E_OS_PCI_MBR_RD_TMOUT: MBR read timeout +0xB0001003 +E_OS_PCI_MBR_WR_TMOUT: MBR write timeout +0xB0001004 +E_OS_PCI_MBR_CMD: bad MBR command +0xB0001005 +E_OS_PCI_RX_CRC: rx crc error +0xB0001006 +E_OS_PCI_NOT_IMPL: function not implememted +0xB0001007 +E_OS_PCI_SHUTDOWN: shutdown request received +0xB0001008 +E_OS_PCI_MEM: memory allocation failed +0xB0001009 +E_OS_PCI_SEQCT: bad sequence counter +0xB000100A +E_OS_PCI_RD_TMOUT: read timeout +0xB000100B +E_OS_PCI_WR_TMOUT: write timeout +0xB000100C +E_OS_PCI_LENERR: block length error +0xB000100D +E_OS_PCI_SOCKET: socket error +0xB000100E +E_OS_PCI_STATE: bad state for receive +0xB00011 +E_OS_RTC: RTC section +0xB0001100 +E_OS_RTC_FAIL: RTC failed +0xB0001101 +E_OS_RTC_NOT_INIT: RTC not initialized +0xB0001102 +E_OS_RTC_PARAM: Bad parameter +0xB00013 +E_OS_CRYPT: CRYPT section +0xB0001301 +E_OS_CRYPT_MEM_ALLOC: Error during memory allocation +0xB0001302 +E_OS_CRYPT_PARA_INVALID: Invalid input parameter +0xB0001303 +E_OS_CRYPT_MK_READ: Error reading master key +0xB0001304 +E_OS_CRYPT_NO_MK: no internal access to CS2 master key +0xB0001305 +E_OS_CRYPT_MK_CORR: CS2 master key corrupted +0xB0001306 +E_OS_CRYPT_MK_WRITE: Error updating master key +0xB0001307 +E_OS_CRYPT_NOT_SUPP: Function not supported +0xB0001308 +E_OS_CRYPT_RND_FAIL: Random number generator failed +0xB0001309 +E_OS_CRYPT_SHA512_KAT: SHA-512 Known Answer Test failed +0xB0001310 +E_OS_CRYPT_RND_TMOUT: Random number generator timeout +0xB0001311 +E_OS_CRYPT_RND_KAT: Known answer test failed +0xB0001312 +E_OS_CRYPT_RND_INIT: Random Number Generator is not initialized +0xB0001313 +E_OS_CRYPT_RND_SEC_STRENGTH: Given security strength not supported +0xB0001314 +E_OS_CRYPT_RND_REQ: Max number of requested randombits per call exceeded +0xB0001315 +E_OS_CRYPT_RND_PRED_RESISTANCE: Prediction resistance not supported for current handle +0xB0001316 +E_OS_CRYPT_RND_RESEED: Random Number Generator needs to be reseeded +0xB0002 +E_OS_COFF: COFF section +0xB0002001 +E_OS_COFF_RELOC_LO16: relocation error (low 16 bits) +0xB0002002 +E_OS_COFF_RELOC_HI16: relocation error (high 16 bits) +0xB0002003 +E_OS_COFF_RELOC_PCR21: relocation error (PC relative) +0xB0002004 +E_OS_COFF_RELOC_LONG: relocation error (long) +0xB0002005 +E_OS_COFF_ALLOC: can't allocate memory +0xB0002006 +E_OS_COFF_BAD_NSCN: bad number of section headers +0xB0002007 +E_OS_COFF_2BSS: multiple BSS segments +0xB0002008 +E_OS_COFF_2CINIT: multiple CINIT segments +0xB0002009 +E_OS_COFF_NO_DATA: missing data in segment +0xB000200A +E_OS_COFF_BAD_ENTRY: bad entry function +0xB000200B +E_OS_COFF_NO_SYMTAB: missing symbol table +0xB000200C +E_OS_COFF_REL_DATA: bad relocation data +0xB000200D +E_OS_COFF_REL_SCN: bad section number in relocation data +0xB000200E +E_OS_COFF_REL_DISP: bad displacement in relocation data +0xB000200F +E_OS_COFF_REL_SYMIDX: bad symbol index in relocation data +0xB0002010 +E_OS_COFF_REL_TYPE: bad relocation type +0xB0002011 +E_OS_COFF_HEADER: bad coff file header +0xB0002012 +E_OS_COFF_MISS: missing information in coff file +0xB0002013 +E_OS_COFF_BSS_NEMPTY: BSS segment is not empty +0xB0002014 +E_OS_COFF_CINIT_NEMPTY: CINIT segment is not empty +0xB0002015 +E_OS_COFF_CPU_TYPE: module does not match CPU type +0xB0002016 +E_OS_COFF_REL_TARGET: bad relocation target address +0xB0002017 +E_OS_COFF_REL_STACKOVF: symbol stack overflow +0xB0002018 +E_OS_COFF_RELOC_USTFLD: relocation error (USTFLD) +0xB0002019 +E_OS_COFF_RELOC_XSTFLD: relocation error (XSTFLD) +0xB0003 +E_OS_USB: USB section +0xB0003001 +E_OS_USB_MALLOC: memory allocation failed +0xB0003002 +E_OS_USB_PARAM: invalid parameter +0xB0003003 +E_OS_USB_NOT_SUPPORTED: USB not supported +0xB0003004 +E_OS_USB_INIT_FAILED: initialization of host controller failed +0xB0003005 +E_OS_USB_DEVICE_CONNECT: device is not connected +0xB0003006 +E_OS_USB_DEVICE_STATE: invalid device state +0xB0003007 +E_OS_USB_TIMEOUT: timeout occured +0xB0003008 +E_OS_USB_NAK: NAK received +0xB0003009 +E_OS_USB_PROTOCOL: protocol error +0xB000300A +E_OS_USB_IDTAB_FULL: ID table is full +0xB000300B +E_OS_USB_NOT_FOUND: item not found +0xB000300C +E_OS_USB_DATA_LEN: invalid data length +0xB00031 +E_OS_USB_ERR: transaction error +0xB00032 +E_OS_USB_LIBUSB: libusb +0xB00050 +E_OS_PNC_0: panic message +0xB0005001 +E_OS_PNC_BL: Can't start bootloader (CRC) +0xB0005002 +E_OS_PNC_SDRAM: Can't start bootloader (SDRAM error) +0xB000500B +E_OS_PNC_PCI: PCI interface closed +0xB000500C +E_OS_PNC_MEMORY: memory corruption detected +0xB00053 +E_OS_PNC_3: shutdown message +0xB0005306 +E_OS_PNC_HIGH_TEMP: High temperature +0xB000530A +E_OS_PNC_RESET_ALARM: Alarm reseted +0xB000530E +E_OS_PNC_CLEAR: CryptoServer cleared +0xB0005344 +E_OS_PNC_HALT: CryptoServer halted +0xB001 +E_FIPS140: CryptoServer module FIPS140 +0xB0010001 +E_FIPS140_INVALID_MDL_VERSION: invalid module version +0xB0010002 +E_FIPS140_ILLEGAL_MDL: illegal firmware module in FIPS mode +0xB0010003 +E_FIPS140_MISSING_APPR_MDL: missing approved module +0xB0010004 +E_FIPS140_APPR_MDL_INIT_FAILED: approved module initialization failed +0xB0010010 +E_FIPS140_DES_KAT: known answer test of DES failed +0xB0010011 +E_FIPS140_RSA_KAT: known answer test of RSA failed +0xB0010012 +E_FIPS140_AES_KAT: known answer test of AES failed +0xB0010013 +E_FIPS140_ECDSA_PCT: pair-wise consistency test of ECDSA failed +0xB0010014 +E_FIPS140_HASH_KAT: known answer test of HASH failed +0xB0010020 +E_FIPS140_AES_ENC_KAT_FAILED: known answer test for AES encrypt/decrypt failed +0xB0010021 +E_FIPS140_AES_MAC_KAT_FAILED: known answer test for AES CBC-MAC failed +0xB0010022 +E_FIPS140_AES_CMAC_KAT_FAILED: known answer test for AES CMAC failed +0xB0010023 +E_FIPS140_AES_GCM_KAT_FAILED: known answer test for AES GCM failed +0xB0010024 +E_FIPS140_AES_OFB_KAT_FAILED: known answer test for AES OFB failed +0xB0010025 +E_FIPS140_AES_GMAC_KAT_FAILED: known answer test for AES GMAC failed +0xB0010030 +E_FIPS140_RSA_SIGN_KAT_FAILED: known answer test for RSA sign/verify failed +0xB0010031 +E_FIPS140_RSA_ENC_PCT_FAILED: pair-wise consistency test for RSA encrypt/decrypt failed +0xB0010040 +E_FIPS140_HMAC_KAT_FAILED: known answer test for HMAC failed +0xB0010050 +E_FIPS140_DSA_SIGN_PCT_FAILED: pair-wise consistency test for DSA sign/verify failed +0xB0010060 +E_FIPS140_ECC_CDH_KAT_FAILED: known answer test for ECC CDH failed +0xB0010070 +E_FIPS140_KDF_800108_KAT_FAILED: known answer test for KDF_800108 failed +0xB0010080 +E_FIPS150_UTL_TEST_FAILED: known answer tests for (internally used only) utility functions failed +0xB0010100 +E_FIPS140_CMD_LEN: bad command length +0xB0010200 +E_FIPS140_INVALID_PARAM: function called with invalid parameter +0xB006 +E_BL3: Bootloader +0xB0060000 +E_BL3_PARA_INV: invalid parameter +0xB0060001 +E_BL3_ITEM_NOT_FOUND: item not found +0xB0060002 +E_BL3_ITEM_LEN: invalid item length +0xB0060003 +E_BL3_BUF_SIZE: buffer size too small +0xB006001 +E_BL3_CMD: command section +0xB0060010 +E_BL3_CMD_FMT_LEN: bad length within format string +0xB0060011 +E_BL3_CMD_BAD_OUT: bad parameter structure +0xB0060012 +E_BL3_CMD_BAD_FMT: bad format string +0xB0060013 +E_BL3_CMD_BAD_CMD: bad format +0xB0060014 +E_BL3_CMD_TIMEOUT: timeout occured +0xB0060015 +E_BL3_CMD_PROHIBIT: command is not allowed +0xB0060016 +E_BL3_CMD_INVALID_HEADER: invalid command header +0xB0060017 +E_BL3_CMD_INVALID_LENGTH: invalid command length +0xB0060018 +E_BL3_CMD_INVALID_FC: invalid function code +0xB0060019 +E_BL3_CMD_INVALID_SFC: invalid sub-function code +0xB006001A +E_BL3_CMD_INVALID_CHALLENGE: invalid challenge +0xB006001B +E_BL3_CMD_FIPS_PROHIBIT: command is not allowed in FIPS mode +0xB006001C +E_BL3_CMD_SFC_DISABLED: command not available in current configuration +0xB006003 +E_BL3_MDL: module section +0xB0060031 +E_BL3_MDL_MTC_HDR_INV: invalid MTC Header +0xB0060032 +E_BL3_MDL_MTC_NO_SIG: no MTC signature present +0xB0060033 +E_BL3_MDL_MMC_HDR_INV: invalid MMC Header +0xB0060034 +E_BL3_MDL_MMC_NO_SIG: no MMC signature present +0xB0060035 +E_BL3_MDL_MMC_HASH: MMC hash compare failed +0xB0060036 +E_BL3_MDL_MSC_HDR_INV: invalid MSC Header +0xB0060037 +E_BL3_MDL_MSC_HASH: MSC hash compare failed +0xB0060038 +E_BL3_MDL_NO_INFO: no module info found +0xB006004 +E_BL3_COFF: coff section +0xB0060040 +E_BL3_COFF_NAME_INV: invalid coff name +0xB0060041 +E_BL3_COFF_HDR_INV: invalid coff header +0xB0060042 +E_BL3_COFF_OPT_HDR_MAGIC: invalid header magic +0xB0060043 +E_BL3_COFF_OPT_HDR_SIZE: invalid header size +0xB0060044 +E_BL3_COFF_SECT_INV: invalid section +0xB0060045 +E_BL3_COFF_SECT_RELOC_INV: invalid relocation of section +0xB0060046 +E_BL3_COFF_SECT_ADR_RUN_ALG: invalid run address +0xB0060047 +E_BL3_COFF_SECT_ADR_LOAD_ALG: invalid load address +0xB0060048 +E_BL3_COFF_SECT_MEM_INV: invalid section memory +0xB0060049 +E_BL3_COFF_OPT_HDR_INV: invalid opt header +0xB006004A +E_BL3_COFF_SIZE_INV: invalid size +0xB006004B +E_BL3_COFF_ADR_INV: invalid address +0xB006004C +E_BL3_COFF_MTC_INV: invalid MTC +0xB006004D +E_BL3_COFF_ENTRY_INV: invalid entry point +0xB006004E +E_BL3_COFF_CPU_TYPE: invalid CPU type +0xB006004F +E_BL3_COFF_INV: invalid coff file +0xB006005 +E_BL3_SIG: signature secture +0xB0060050 +E_BL3_SIG_PKCS1: invalid pkcs1 padding +0xB0060051 +E_BL3_SIG_HASH: hash compare failed +0xB006006 +E_BL3_RSA: RSA section +0xB0060060 +E_BL3_RSA_RES_OFLOW: rsa result overflow +0xB0060061 +E_BL3_RSA_DIV_OFLOW: modulus is zero +0xB0060062 +E_BL3_RSA_INP_GE_MOD: modulus is smaller than operand +0xB006007 +E_BL3_FILE: file section +0xB0060071 +E_BL3_FILE_FLASH_FORMAT: error formating flash file +0xB0060072 +E_BL3_FILE_AFTER_FORMAT_LOOP: flash file formated succesfully, now looping forever +0xB0060073 +E_BL3_FILE_INIT: Initialization of file system failed +0xB0060074 +E_BL3_FILE_EXIST: file already exists +0xB0060075 +E_BL3_FILE_NAME: invalid filename +0xB0060076 +E_BL3_FILE_TYPE: invalid file type +0xB0060077 +E_BL3_FILE_SIZE: invalid file size +0xB0060078 +E_BL3_FILE_NOT_FOUND: file not found +0xB006007A +E_BL3_FILE_OPEN: file open error +0xB006007B +E_BL3_FILE_READ: file read error +0xB006007C +E_BL3_FILE_WRITE: file write error +0xB006007D +E_BL3_FILE_CLOSE: file close error +0xB006008 +E_BL3_PCI: PCI section +0xB0060080 +E_BL3_PCI_TIMEOUT: timeout occured +0xB0060081 +E_BL3_PCI_PROTOCOL: protocol error +0xB0060082 +E_BL3_PCI_LENGTH: length error +0xB0060083 +E_BL3_PCI_CRC: crc error +0xB0060084 +E_BL3_PCI_BUFSIZE: buffer size too small +0xB0060085 +E_BL3_PCI_PARAM: invalid parameter +0xB006009 +E_BL3_UID: UID section +0xB0060090 +E_BL3_UID_CRC: bad CRC on UID +0xB0060091 +E_BL3_UID_NOT_FOUND: UID not found +0xB0060092 +E_BL3_UID_EXT_INV: Extended UID invalid +0xB00600A +E_BL3_SL: SL section +0xB00600A0 +E_BL3_SL_NAME_INV: invalid device name +0xB00600A1 +E_BL3_SL_HDL_INV: invalid handle value +0xB00600A2 +E_BL3_SL_NOT_OPEN: device is not open +0xB00600A3 +E_BL3_SL_INUSE: device is already in use +0xB00600A4 +E_BL3_SL_PARAM: invalid parameter +0xB00600A5 +E_BL3_SL_PARAM_VALUE: invalid parameter value +0xB00600A6 +E_BL3_SL_TIMEOUT: timeout +0xB00600A7 +E_BL3_SL_CRC: invalid crc +0xB00600A8 +E_BL3_SL_OVERRUN: overrun error +0xB00600A9 +E_BL3_SL_PARITY: parity error +0xB00600AA +E_BL3_SL_FRAME: framing error +0xB00600AB +E_BL3_SL_DATA_COMP: data compare failed +0xB00600B +E_BL3_MSP_BSL: MSP BSL section +0xB00600B1 +E_BL3_MSP_BSL_VERSION: get version failed +0xB00600B2 +E_BL3_MSP_BSL_SYNC: sync failed +0xB00600B3 +E_BL3_MSP_BSL_ERASE: erase failed +0xB00600B4 +E_BL3_MSP_BSL_LOGIN: login failed +0xB00600B5 +E_BL3_MSP_BSL_WRITE: write failed +0xB00600C +E_BL3_JTAG: JTAG section +0xB00600C0 +E_BL3_JTAG_STATE: invalid state +0xB00600C1 +E_BL3_JTAG_IDCODE: unexpected IDCODE +0xB00600D +E_BL3_FLASH: Flash section +0xB00600D0 +E_BL3_FLASH_TIMEOUT: timeout during flash operation +0xB00600D1 +E_BL3_FLASH_ID: error reading flash id +0xB00600D2 +E_BL3_FLASH_ERASE: erase failed +0xB00600D3 +E_BL3_FLASH_PAGE_READ: error reading flash page +0xB00600D4 +E_BL3_FLASH_PAGE_WRITE: error writing flash page +0xB00600D5 +E_BL3_FLASH_PAGE_DATA: bad page data +0xB00600D6 +E_BL3_FLASH_CRC: invalid CRC +0xB00600E +E_BL3_LOG: log section +0xB00600E0 +E_BL3_LOG_DOES_NOT_EXIST: log file does not exist +0xB00600F +E_BL3_SDRAM: SDRAM section +0xB00600F1 +E_BL3_SDRAM_BUS_DATA: data bus test failed +0xB00600F2 +E_BL3_SDRAM_BUS_ADR: address bus test failed +0xB00600F3 +E_BL3_SDRAM_BUS_DEV: device test failed +0xB006010 +E_BL3_USB: USB section +0xB0060100 +E_BL3_USB_NACK: NACK received +0xB0060101 +E_BL3_USB_TIMEOUT: timeout occured +0xB0060102 +E_BL3_USB_PROT: protocol error +0xB0060103 +E_BL3_USB_DEVICE: device error +0xB0060104 +E_BL3_USB_PARAM: invalid parameter +0xB0060105 +E_BL3_USB_NOT_SUPPORTED: function not supported +0xB0060106 +E_BL3_USB_INIT_FAILED: initialisation failed +0xB0060107 +E_BL3_USB_DEVICE_CONNECT: error connecting device +0xB0060108 +E_BL3_USB_DEVICE_STATE: error determining device state +0xB0060109 +E_BL3_USB_PROTOCOL: usb protocol error +0xB006011 +E_BL3_FF: flash file section +0xB0060111 +E_BL3_FF_NO_CONFIG: no config page +0xB0060112 +E_BL3_FF_CONFIG_SIZE: invalid flash size +0xB0060113 +E_BL3_FF_NO_BBT: no bad block table +0xB0060114 +E_BL3_FF_INVALID_BBT: invalid bad block table +0xB0060115 +E_BL3_FF_BBT_STORE: unable to store bad block +0xB0060116 +E_BL3_FF_NOT_BLANK: page is not blank +0xB006012 +E_BL3_I2C: i2c device section +0xB0060120 +E_BL3_I2C_PARA_INV: one parameter is wrong +0xB0060121 +E_BL3_I2C_NO_ACK: got no acknowledge after sending a byte +0xB0060122 +E_BL3_I2C_NO_DEV: device does not exist +0xB006013 +E_BL3_XSVF: XSVF section +0xB0060131 +E_BL3_XSVF_UNKNOWN: unknown error +0xB0060132 +E_BL3_XSVF_TDOMISMATCH: TDO mismatch +0xB0060133 +E_BL3_XSVF_MAXRETRIES: TDO mismatch after max retries +0xB0060134 +E_BL3_XSVF_ILLEGALCMD: illegal command +0xB0060135 +E_BL3_XSVF_ILLEGALSTATE: illegal state +0xB0060136 +E_BL3_XSVF_DATAOVERFLOW: buffer overflow +0xB006014 +E_BL3_SHA512: SHA512 section +0xB0060140 +E_BL3_SHA512_KAT: SHA512 known answer test failed +0xB006015 +E_BL3_NVRAM: NVRAM section +0xB0060150 +E_BL3_NVRAM_TIMEOUT: timeout during nvram operation +0xB0060151 +E_BL3_NVRAM_PAGE_READ: error reading nvram page +0xB0060152 +E_BL3_NVRAM_PAGE_WRITE: error writing nvram page +0xB0060153 +E_BL3_NVRAM_PAGE_DATA: bad page data +0xB0060154 +E_BL3_NVRAM_ID: error reading flash id +0xB0060155 +E_BL3_NVRAM_NOT_AVAILABLE: NVRAM not available in Bootloader mode +0xB00602 +E_BL3_MSP: MSP section +0xB0060201 +E_BL3_MSP_DATA_LEN: data len for communication with msp too large +0xB0060202 +E_BL3_MSP_IO_ERR: timeout occurred +0xB00602A5 +E_BL3_MSP_CMD: invalid command +0xB00602BD +E_BL3_MSP_ADDR: invalid address +0xB00602C3 +E_BL3_MSP_DATA: invalid data +0xB00602DB +E_BL3_MSP_CRC: invalid crc +0xB00603 +E_BL3_USB_ERR: SPI section +0xB0060401 +E_BL3_SPI_RD_TO: read timeout +0xB0060402 +E_BL3_SPI_XRDY_TO: timeout waiting for receiver ready +0xB0060403 +E_BL3_SPI_MSP_RDY_TO: timeout waiting for MSP ready +0xB0060404 +E_BL3_SPI_MSP_NRDY_TO: timeout waiting for MSP ready low +0xB0060405 +E_BL3_SPI_RRDY_TO: timeout waiting for RRDY +0xB0060500 +E_BL3_EXAR: EXAR section +0xB0060501 +E_BL3_EXAR_TIMEOUT: timeout during pci cfg operation +0xB0060502 +E_BL3_EXAR_DATA_TEST: wrong data read +0xB0060503 +E_BL3_EXAR_PCI_BUSY: pci interface for accelerator busy +0xB0060504 +E_BL3_EXAR_DETECT: no exar accelerator found +0xB0060511 +E_BL3_SCF_MALLOC: memory allocation failed +0xB0060512 +E_BL3_SCF_INVALID_PARAM: invalid parameter +0xB0060513 +E_BL3_SCF_INVALID_HDL: invalid handle +0xB0060514 +E_BL3_SCF_BAD: bad config file +0xB0060515 +E_BL3_SCF_SECT_NOT_FOUND: section not found +0xB0060516 +E_BL3_SCF_ITEM_NOT_FOUND: item not found +0xB007001F +E_BL_WRONG_FC: Wrong Function Code (included for backward compatibility) +0xB007001F +E_BL_WRONG_FC: Wrong Function Code (included for backward compatibility) +0xB00A +E_HCE: CryptoServer module HCE +0xB00A0001 +E_HCE_MEM: memory allocation failed +0xB00A0002 +E_HCE_PCI_MASTER: PCI master access error (DSP) +0xB00A0003 +E_HCE_KEY_SIZE: key size not supported +0xB00A0004 +E_HCE_EXP_SIZE: exponent greater modulus +0xB00A0005 +E_HCE_TIMEOUT: hardware engine timeout +0xB00A0006 +E_HCE_RESULT_SIZE: result too big for buffer +0xB00A0007 +E_HCE_PRIME_SIZE: illegal sizes of prime +0xB00A0008 +E_HCE_DATA_LEN: data size too big (greater than modulus) +0xB00A0009 +E_HCE_SELFTST_FAIL: Self-test failed +0xB00A000A +E_HCE_NO_LNA: Module LNA not found +0xB00A000B +E_HCE_DMA: PCI DMA master access error +0xB00A000C +E_HCE_NO_DRIVER: No driver module found +0xB00A000D +E_HCE_DRIVER_INCOMPATIBLE: Driver does not allow routing from HCE to driver. +0xB00A000E +E_HCE_PARAM_INVALID: invalid parameter +0xB00A000F +E_HCE_NOT_SUPPORTED: function is not supported +0xB00A0010 +E_HCE_VERIFY_FAILED: Signature verification failed +0xB00A80 +E_HCE_ENGN_ERR: hardware engine error +0xB00D +E_EXAR: CryptoServer module EXAR +0xB00D0001 +E_EXAR_NO_MARVEL: no Marvell bridge detected +0xB00D0002 +E_EXAR_NO_EXAR: no Exar chip detected +0xB00D0003 +E_EXAR_INVAL: invalid parameter +0xB00D0004 +E_EXAR_TIMEOUT: timeout +0xB00D0005 +E_EXAR_MALLOC: memory allocation failed +0xB00D0006 +E_EXAR_SELFTEST: selftest failed +0xB00D0007 +E_EXAR_BUF_SIZE: insufficient buffer size +0xB00D0008 +E_EXAR_STATE: invalid command state +0xB00D0009 +E_EXAR_PARAM_LEN: invalid parameter length +0xB00D000A +E_EXAR_SIGN_FAILED: sign failed +0xB00D000B +E_EXAR_VERIFY_FAILED: signature verification failed +0xB00D000C +E_EXAR_KEY_SIZE: key size not supported +0xB00D000D +E_EXAR_DATA_LEN: data size too big +0xB00D0010 +E_EXAR_ERR_ADDR: address error +0xB00D0011 +E_EXAR_ERR_ECC: ECC error +0xB00D0012 +E_EXAR_BUSY: all engines are busy +0xB00D0020 +E_EXAR_PCI_BUSY: PCI is busy +0xB00D0021 +E_EXAR_PCI_TIMEOUT: PCI timeout +0xB00D0022 +E_EXAR_PCI_ACCESS: PCI access error +0xB00E +E_BCM: CryptoServer module HCE +0xB00E0001 +E_BCM_MEM: memory allocation failed +0xB00E0002 +E_BCM_PCI_MASTER: PCI master access error (DSP) +0xB00E0003 +E_BCM_KEY_SIZE: key size not supported +0xB00E0004 +E_BCM_EXP_SIZE: exponent greater modulus +0xB00E0005 +E_BCM_TIMEOUT: hardware engine timeout +0xB00E0006 +E_BCM_RESULT_SIZE: result too big for buffer +0xB00E0007 +E_BCM_PRIME_SIZE: illegal sizes of prime +0xB00E0008 +E_BCM_DATA_LEN: data size too big (greater than modulus) +0xB00E0009 +E_BCM_SELFTST_FAIL: Self-test failed +0xB00E000A +E_BCM_NO_LNA: Module LNA not found +0xB00E000B +E_BCM_DMA: PCI DMA master access error +0xB00E80 +E_BCM_ENGN_ERR: hardware engine error +0xB050 +E_PK: CryptoServer module PK +0xB0500001 +E_PK_PARAMETER: invalid parameter +0xB0500002 +E_PK_MEMORY: memory allocation failed +0xB0500003 +E_PK_UNKNOWN_DN_TYPE: unknown distinguished name type +0xB0500004 +E_PK_INVALID_DN: invalid distinguished name (value or length) +0xB0500005 +E_PK_INVALID_TIME_FORMAT: invalid time format +0xB0500006 +E_PK_UNKNOWN_KEY_TYPE: unknown / unsupported key type +0xB0500007 +E_PK_UNKNOWN_SIGN_ALGO: unknown / unsupported signature algorithm +0xB0500008 +E_PK_UNKNOWN_HASH_ALGO: unknown / unsupported hash algorithm +0xB0500009 +E_PK_INVALID_VERSION: invalid / unsupported version +0xB050000A +E_PK_P7_UNKNOWN_CONTENT_TYPE: unknown / unsupported PKCS7 content type +0xB050000B +E_PK_P7_NO_VERSION_FOUND: no PKCS7 version found +0xB050000C +E_PK_P7_UNKNOWN_ELEM_TYPE: unknown PKCS7 element type +0xB050000D +E_PK_P7_ELEM_TYPE_SIGNATURE: element type SIGNATURE not found +0xB050000E +E_PK_P7_ELEM_TYPE_ENVELOPED: element type ENVELOPED not found +0xB050000F +E_PK_P7_ELEM_TYPE_CERT: element type CERT not found +0xB0500010 +E_PK_P7_ELEM_TYPE_AUTH_ATT: element type AUTH_ATT not found +0xB0500011 +E_PK_P7_ELEM_TYPE_UNAUTH_ATT: element type UNAUTH_ATT not found +0xB0500012 +E_PK_P7_ELEM_TYPE_SIG_TIME: element type SIG_TIME not found +0xB0500013 +E_PK_P7_ELEM_TYPE_DATA: element type DATA not found +0xB0500014 +E_PK_P7_SIGNER_CERTIFICATE: no signer certificate given +0xB0500015 +E_PK_P7_NO_DATA_OR_HASH: no data or hash given to perform sign / verify operation +0xB0500016 +E_PK_P7_INVALID_CONTENT_TYPE: invalid PKCS7 content type +0xB0500017 +E_PK_P7_NO_DIGEST_ALGORITHM: no digest algorithm in PKCS7 data found +0xB0500018 +E_PK_P7_NO_SIGNER_INFOS: no signer infos found +0xB0500019 +E_PK_P7_NO_ISSUER: no issuer / serial number found +0xB050001A +E_PK_P7_NO_OF_ELEM: number of PK_P7_ELEM too small +0xB050001B +E_PK_P7_SIGNER_REF: invalid signer reference +0xB050001C +E_PK_P7_CONTENT_TYPE_NOT_SD: content type is not SignedData +0xB050001D +E_PK_P7_CONTENT_TYPE_NOT_ENV: content type is not Enveloped +0xB050001E +E_PK_P7_KEY_TYPE_MISMATCH: digestEncryptionAlgorithm doesn't match signer certificate key type +0xB050001F +E_PK_P7_VERIFICATION: signature verfication failed +0xB0500020 +E_PK_P7_RECIPIENT_CERT: no recipient certificate given +0xB0500021 +E_PK_P7_UNKNOWN_ENC_KEY_TYPE: unknown / unsupported encryption key type +0xB0500022 +E_PK_P7_MULTIPLE_RCPTS: multiple recipients not supported +0xB0500023 +E_PK_P7_CERT_MISMATCH: given certificate doesn't match certificate in PKCS7 structure +0xB0500024 +E_PK_P7_KEK_ALGO: given key doesn't match key encryption algorithm +0xB0500025 +E_PK_P7_NO_ENC_KEY_ALGO: no key encryption algorithm identifier found +0xB0500026 +E_PK_P7_NO_CONTENT_TYPE: no content type found +0xB0500027 +E_PK_P7_NO_CONTENT_KEY_ALGO: no content encryption algorithm identifier found +0xB0500028 +E_PK_P7_ATTRIBUTE: invalid attribute structure +0xB0500029 +E_PK_P7_NEED_MORE_SPACE: given buffer / struct doesn't contain enough space for this operation +0xB0500030 +E_PK_AES_MODULE: Firmware module AES not loaded +0xB0500031 +E_PK_UNKNOWN_ATT_TYPE: unknown attribute type +0xB0500032 +E_PK_CRL_ISSUER_MISMATCH: CRL issuer doesn't match certificate's subject / issuer +0xB0500033 +E_PK_CRL_ATTR_NOT_AVAILABLE: requested attribute not available (optional) +0xB0500034 +E_PK_CRL_BAD_FORMAT: bad CRL format +0xB0500035 +E_PK_CRL_NOT_VALID: CRL is not yet valid +0xB0500036 +E_PK_CRL_INIT_NOT_CALLED: partial CRL verification not initialized +0xB0500037 +E_PK_CRL_HALGO_MISMATCH: algorithm oid of crl header and trailer differ +0xB0500040 +E_PK_UNSUPPORTED_TIME_FORMAT: unsupported time format +0xB0500041 +E_PK_UNSUPPORTED_CENTURY: given time format contains century < 2000 +0xB0500042 +E_PK_INDEF_LEN: indefinite length not supportet +0xB0500043 +E_PK_NO_ECDSA: Firmware module ECDSA not loaded +0xB0500050 +E_PK_P7_INVALID_SIGNER: invalid signer / invalid signer information +0xB0500051 +E_PK_P7_INVALID_SIGNER_STRUCT: invalid signer structure (ASN.1 error) +0xB061 +E_CTS: CryptoServer module CTS +0xB0610001 +E_CTS_CMD_LEN: Wrong command length +0xB0610002 +E_CTS_MEMORY: memory allocation error +0xB0610003 +E_CTS_INVALID_KEY_ID: Invalid key index +0xB0610004 +E_CTS_SIGNATURE_OID: Signature Algorithm unsupported (hash or signing) +0xB0610005 +E_CTS_DB_ENTRY_EXIST: key index already exists in database +0xB0610006 +E_CTS_KEY_NOT_ACTIVE: selected key is not enabled for signing +0xB0610007 +E_CTS_NO_ACCORDING_KEY: No key for the imported certificate available +0xB0610008 +E_CTS_DATE_EXPIRED: certification validity expired +0xB0610009 +E_CTS_DATE_NOT_YET_VALID: certificate is not yet valid +0xB061000A +E_CTS_PERMISSION_DENIED: permission denied +0xB061000B +E_CTS_NO_CERT_IMPORTED: No certificate to the according key imported +0xB061000C +E_CTS_MBK_NOT_FOUND: mbk from MBK module not found +0xB061000D +E_CTS_MBK_NOT_LOADED: MBK module not loaded +0xB061000E +E_CTS_INVALID_TOKEN_LEN: RSA key token length invalid +0xB061000F +E_CTS_INVALID_HASH: Calculated hash doesn't match given one +0xB0610010 +E_CTS_WRONG_DN_TYPE: Unknown DN component +0xB0610011 +E_CTS_DN_NO_STRUCT: Given ASN1_ITEM of a DN is no struct +0xB0610012 +E_CTS_DN_NOT_EQUAL: Issuer and Subject not the same +0xB0610013 +E_CTS_UNKNOWN_TAG: (ASN1) Tag unknown +0xB0610014 +E_CTS_NOT_FOUND: Given issuer / subject not found +0xB0610015 +E_CTS_CERT_EXIST: Certificate already exist +0xB0610016 +E_CTS_INVALID_TS_STRUCT: TimeStamp ASN.1 structure not correct +0xB0610017 +E_CTS_INVALID_CERTIFICATE: Given certificate not equal to the one in the database +0xB0610018 +E_CTS_INVALID_TIME_DELAY: Given delay to set the new time is too big +0xB0610019 +E_CTS_EXCEEDED_TIME_DELAY: Too many time adjustments on this day +0xB061001A +E_CTS_INVALID_TSA_NAME: TSA name contained in timestamp doesn't match signer name +0xB064 +E_PKCS11: CryptoServer module PKCS11 +0xB0640001 +E_PKCS11_OBJ_CORR: corrupted object data structure +0xB0640002 +E_PKCS11_BAD_ARG: bad arguments +0xB0640003 +E_PKCS11_OBJ_BIG: object has to many attributes +0xB0640004 +E_PKCS11_APP_COUNT: too many concurrent applications +0xB0640005 +E_PKCS11_APP_BAD: bad application reference +0xB0640006 +E_PKCS11_OBJHDL_OVL: object handle overflow +0xB0640007 +E_PKCS11_BAD_PUBEXP: bad public exponent +0xB0640008 +E_PKCS11_BAD_MODULUS: bad modulus +0xB0640009 +E_PKCS11_NO_AES: AES module not found +0xB064000A +E_PKCS11_NO_EC: ECA/ECDSA modules not found +0xB064000B +E_PKCS11_DENIED: access denied +0xB064000C +E_PKCS11_SLOT_CORR: corrupted slot data structure +0xB064000D +E_PKCS11_NO_MBK: MBK module not found +0xB064000E +E_PKCS11_NO_MBK_KEY: no MBK key loaded +0xB064000F +E_PKCS11_INV_BACKUP: invalid backup +0xB0640010 +E_PKCS11_SHUTDOWN: PKCS#11 service terminated +0xB0640011 +E_PKCS11_SLOT_NOT_EMPTY: slot not empty +0xB0640012 +E_PKCS11_NO_DSA: DSA module not found +0xB0640013 +E_PKCS11_APP_TIMEOUT: application timeout +0xB0640014 +E_PKCS11_VALIDITY_PERIOD: validity period has expired +0xB0648 +E_PKCS11_STD: PKCS#11 standard error +0xB068 +E_CXI: CryptoServer module CXI +0xB0680000 +E_CXI_MALLOC: memory allocation error +0xB0680001 +E_CXI_PERMISSION_DENIED: permission denied +0xB0680002 +E_CXI_BUF_SIZE: buffer size too small +0xB0680003 +E_CXI_NOT_SUPPORTED: function not supported +0xB0680004 +E_CXI_MBK_NOT_LOADED: MBK firmware module not loaded +0xB0680005 +E_CXI_INVALID_PARAM_TAG: invalid parameter tag +0xB0680006 +E_CXI_INVALID_PARAM_LEN: invalid parameter length +0xB0680007 +E_CXI_INVALID_PARAM_VAL: invalid parameter value +0xB0680008 +E_CXI_INVALID_FLAGS: invalid flags +0xB0680009 +E_CXI_SFC_RFU: SFC is reserved for further use +0xB068000A +E_CXI_INTERNAL: an internal error occured +0xB068000B +E_CXI_MBK_TYPE: invalid MBK key type +0xB068000C +E_CXI_VALIDITY_PERIOD: validity period has expired +0xB0680010 +E_CXI_PROP_ABSENT: property has to be absent +0xB0680011 +E_CXI_PROP_UNKNOWN: unknown property +0xB0680012 +E_CXI_PROP_NOT_FOUND: property not found +0xB0680013 +E_CXI_PROP_EXISTS: property already exists +0xB0680014 +E_CXI_PROP_READONLY: property is read-only +0xB0680015 +E_CXI_PROP_PROTECTED: property is protected +0xB0680016 +E_CXI_PROP_TAG: invalid property tag +0xB0680017 +E_CXI_PROP_VAL: invalid property value +0xB0680018 +E_CXI_PROP_LEN: invalid property length +0xB0680019 +E_CXI_PROP_SENSITIVE: property is sensitive +0xB068001A +E_CXI_PROP_COMPARE: property doesn't match given template +0xB068001B +E_CXI_PROP_LOCAL_ONLY: property only valid for objects in a group +0xB0680020 +E_CXI_KEY_INVALID_ALGO: invalid key algo +0xB0680021 +E_CXI_KEY_INVALID_SIZE: invalid key size +0xB0680022 +E_CXI_KEY_INVALID_TAG: invalid key tag +0xB0680023 +E_CXI_KEY_INVALID_COMP: invalid key component +0xB0680024 +E_CXI_KEY_BLOB_FORMAT: invalid format of key blob +0xB0680025 +E_CXI_KEY_TYPE: invalid key type +0xB0680026 +E_CXI_KEY_BLOB_MAC: invalid mac of key blob +0xB0680027 +E_CXI_KEY_INVALID_NAME: invalid key name +0xB0680028 +E_CXI_KEY_INVALID_TOKEN: invalid key token +0xB0680029 +E_CXI_KEY_MISSING_COMP: missing key component +0xB068002B +E_CXI_KEY_EXPORT_DENIED: key export is denied +0xB068002C +E_CXI_KEY_IMPORT_DENIED: key import is denied +0xB068002D +E_CXI_KEY_MECH_NOT_ALLOWED: mechanism not allowed +0xB068002E +E_CXI_KEY_INVALID_BLEN: invalid block length +0xB068002F +E_CXI_KEY_USAGE: illegal key usage +0xB0680030 +E_CXI_CRYPT_PADDING: invalid padding +0xB0680031 +E_CXI_CRYPT_MECH: invalid mechanism +0xB0680032 +E_CXI_CRYPT_IV_LEN: invalid IV length +0xB0680033 +E_CXI_CRYPT_SIGN_VERIFY: signature verification failed +0xB0680034 +E_CXI_CRYPT_DATA_LEN: invalid data length +0xB0680035 +E_CXI_CRYPT_MECH_PARA: invalid mechanism parameter +0xB0680040 +E_CXI_ITEM_NOT_FOUND: item not found +0xB0680041 +E_CXI_ITEM_TAG: invalid item tag +0xB0680042 +E_CXI_ITEM_LEN: invalid item length +0xB0680043 +E_CXI_ITEM_VAL: invalid item value +0xB0680044 +E_CXI_ITEM_COUNT: invalid number of items +0xB0680050 +E_CXI_FILE_SIZE: invalid file size +0xB0680060 +E_CXI_ABORT_ENUM: enumeration was aborted +0xB0680061 +E_CXI_INVALID_IN_PARAM: invalid input parameter +0xB06801 +E_CXI_FIPS: FIPS mode +0xB0680100 +E_CXI_FIPS_BLOCKED: function not available in FIPS mode +0xB0680101 +E_CXI_FIPS_MECH: mechanism not supported in FIPS mode +0xB0680102 +E_CXI_FIPS_OBJ_TYPE: object type not available in FIPS mode +0xB0680103 +E_CXI_FIPS_ALGO: algorithm not available in FIPS mode +0xB0680104 +E_CXI_FIPS_KEY_SIZE: key size not allowed in FIPS mode +0xB0680105 +E_CXI_FIPS_KEY_IMPORT: clear text key import not allowed in FIPS mode +0xB0680106 +E_CXI_FIPS_KEY_EXPORT: clear text key export not allowed in FIPS mode +0xB0680107 +E_CXI_FIPS_PROP: property not available in FIPS mode +0xB0680108 +E_CXI_NO_FIPS_CURVE: Curve not available in FIPS mode +0xB0680109 +E_CXI_FIPS_KEY_USAGE: Key usage is restricted in FIPS mode +0xB06802 +E_CXI_SECURE: SECURE +0xB0680200 +E_CXI_SECURE_PROP_DECRYPT: decrypt property true not allowed +0xB0680201 +E_CXI_SECURE_PROP_ENCRYPT: encrypt property true not allowed +0xB0680202 +E_CXI_SECURE_PROP_ALWAYS_SENSITIVE_FALSE: always sensitive property false not allowed +0xB0680203 +E_CXI_SECURE_PROP_SENSITIVE_FALSE: sensitive property false not allowed +0xB0680204 +E_CXI_SECURE_PROP_WRAP: wrap property true not allowed +0xB0680205 +E_CXI_SECURE_PUBLIC_WRAPPING: cannot use public keys for wrapping +0xB0680206 +E_CXI_SECURE_PROP_CHECK_VALUE: check value missing or invalid +0xB0800001 +E_FTEST_MALLOC: CryptoServer module VDES +0xB0810001 +E_VDES_DATA_LEN: length of data is not a multiple of 8 bytes +0xB0810002 +E_VDES_KEY_LEN: length of key is not 8, 16, or 24 +0xB0810003 +E_VDES_MEM: cannot allocate memory +0xB0810004 +E_VDES_WEAK: key is weak +0xB0810005 +E_VDES_SEMI_WEAK: key is semi-weak +0xB0810006 +E_VDES_SHORT_KEY: two of the 8byte key parts are identical +0xB0810007 +E_VDES_MODE: mode is unknown +0xB0810008 +E_VDES_READ_MASTER_KEY: could not get local Master Key +0xB0810009 +E_VDES_PAD_TYPE: unknown padding mechanism +0xB081000A +E_VDES_PAD: invalid padding +0xB081000B +E_VDES_PARAM: invalid parameter +0xB081000C +E_VDES_POSSIBLY_WEAK: key is possibly weak +0xB081000E +E_VDES_ZERO_LENGTH: Zero length not allowed +0xB082 +E_PP: CryptoServer module PP, PIN pad driver +0xB0820001 +E_PP_ABORT: operation aborted by user +0xB0820002 +E_PP_LEN: command block too long +0xB0820003 +E_PP_WRITE_TIMEOUT: timeout while writing to PIN pad +0xB0820004 +E_PP_BUFSIZE: answer buffer too small +0xB0820005 +E_PP_READ_TIMEOUT: timeout while reading from PIN pad +0xB0820006 +E_PP_IO: IO error +0xB0820007 +E_PP_NOT_OPEN: connection not open +0xB0820008 +E_PP_INVAL: invalid parameter +0xB0820009 +E_PP_BAD_RAPDU: bad RAPDU from smartcard +0xB082000A +E_PP_NO_CARD: no smartcard in reader +0xB082000B +E_PP_BAD_TYPE: bad PIN pad type specified +0xB082000C +E_PP_DATALEN: bad length of command block +0xB082000D +E_PP_PROT: protocol error +0xB082000E +E_PP_KEY_TIMEOUT: timeout while waiting for key input +0xB082000F +E_PP_RESET_TIMEOUT: timeout while waiting for card insertation +0xB0820010 +E_PP_PIN_REPETITION: bad repetition of PIN entry +0xB0820011 +E_PP_NOT_SUPPORTED: function is not supported +0xB0820012 +E_PP_PARAM: invalid parameter +0xB0820013 +E_PP_ACCESS_DENIED: access denied +0xB0820014 +E_PP_BAD_INPUT: bad input +0xB0820015 +E_PP_CARD_TIMEOUT: no response from smartcard +0xB0820016 +E_PP_READER_NOT_CONNECTED: no supported smartcard reader connected +0xB0820017 +E_PP_CC_BLOCKED: not allowed in CC Endorsed Mode +0xB08201 +E_PP_PPERR: PIN pad error +0xB08202 +E_PP_CCID: CCID Error +0xB083 +E_CMDS: CryptoServer module CMDS, Command scheduler +0xB0830001 +E_CMDS_DENIED: permission denied +0xB0830002 +E_CMDS_NO_MEM: can't alloc memory +0xB0830003 +E_CMDS_INVAL: invalid parameter +0xB0830004 +E_CMDS_IN_USE: module id already in use +0xB0830005 +E_CMDS_BAD_FC: bad function code (module ID) +0xB0830006 +E_CMDS_BAD_SFC: function doesn't exist +0xB0830007 +E_CMDS_BAD_NAME: invalid user name +0xB0830008 +E_CMDS_DATA_LEN: illegal length of command block +0xB0830009 +E_CMDS_TASK_ERR: can't create task +0xB083000A +E_CMDS_BAD_TAG: bad tag of command block +0xB083000B +E_CMDS_FMT_LEN: bad length within format string (scanf) +0xB083000C +E_CMDS_BAD_CMD: bad format of command block +0xB083000D +E_CMDS_BAD_OUT: bad parameter structure (scanf) +0xB083000E +E_CMDS_BAD_FMT: bad format string (scanf) +0xB083000F +E_CMDS_USER_EXISTS: user already exists +0xB0830010 +E_CMDS_BAD_MECH: invalid mechanism +0xB0830011 +E_CMDS_NO_DB: no DB module present +0xB0830012 +E_CMDS_BAD_AUTH_CMD: invalid AUTH layer command +0xB0830013 +E_CMDS_AUTH_FAILED: authentication failed +0xB0830014 +E_CMDS_NO_VRSA: no VRSA module present +0xB0830015 +E_CMDS_BAD_PERM: bad permission mask +0xB0830016 +E_CMDS_NO_USER: unknown user +0xB0830017 +E_CMDS_BAD_ATT: bad user attributes +0xB083001B +E_CMDS_LOGOFF_FAILED: logoff failed +0xB083001C +E_CMDS_USER_ACTIVE: logged in user can't be deleted +0xB083001D +E_CMDS_BAD_TOKEN: bad user token (key or password) +0xB083001E +E_CMDS_NO_VDES: no VDES module present +0xB083001F +E_CMDS_NO_UTIL: no UTIL module present +0xB0830020 +E_CMDS_NO_HASH: no HASH module present +0xB0830021 +E_CMDS_SM_FAILED: secure messaging failed +0xB0830022 +E_CMDS_SM_EXPIRED: secure messaging session expired +0xB0830023 +E_CMDS_SM_ID: invalid secure messaging ID +0xB0830024 +E_CMDS_BF_OVL: internal buffer overflow +0xB0830025 +E_CMDS_FIPS_INIT: FIPS140 initialization failed +0xB0830026 +E_CMDS_USER_MODE: mode does not match user +0xB0830027 +E_CMDS_BAD_MODE: invalid mode +0xB0830028 +E_CMDS_BAD_SIZE: illegal answer buffer size +0xB0830029 +E_CMDS_NO_MBK: no MBK module present +0xB083002A +E_CMDS_INVAL_BCK: invalid backup data +0xB083002B +E_CMDS_BAD_UDB_ENTRY: bad entry in user DB (internal error) +0xB083002C +E_CMDS_BUFF_SIZE: buffer size too small +0xB083002D +E_CMDS_NO_MBK_KEY: no MBK key found +0xB083002E +E_CMDS_MBK_TYPE: MBK type does not match +0xB083002F +E_CMDS_NO_AES: no AES module present +0xB0830030 +E_CMDS_NO_HMAC: no HMAC algorithm available +0xB0830031 +E_CMDS_NO_ECC: no ECC algorithm available +0xB0830032 +E_CMDS_ALARM: ALARM state +0xB0830033 +E_CMDS_BAD_INITKEY: bad file 'init.key' +0xB0830034 +E_CMDS_ADMIN_AMPUTATION: Administrator must remain +0xB0830035 +E_CMDS_USER_FLAG_NOT_ALLOWED: user flag not allowed +0xB0830036 +E_CMDS_SM_PERM_DIFF: permissions of users of same session must not differ +0xB0830037 +E_CMDS_NVRAM: error acessing NVRAM +0xB0830038 +E_CMDS_AUTH_FAIL_CNT_EXCEEDED: too many unsuccessful authentication tries +0xB0830039 +E_CMDS_PARAM_FIPS: parameter not valid in FIPS mode +0xB083003A +E_CMDS_DENIED_FIPS: authentication mandatory in FIPS mode +0xB083003B +E_CMDS_BAD_MECH_FIPS: mechanism not allowed in FIPS mode +0xB083003C +E_CMDS_BAD_ATT_FIPS: user attributes not allowed in FIPS mode +0xB083003D +E_CMDS_BAD_USER_FLAG_FIPS: user flag not allowed in FIPS mode +0xB083003E +E_CMDS_MAX_AUTH_USER_REACHED: maximum of logged in/authenticated users reached +0xB083003F +E_CMDS_SM_MISSING_FIPS: authentication without secure messaging not allowed in FIPS mode +0xB0830040 +E_CMDS_LOGIN_FIPS: static login not allowed in FIPS mode +0xB0830041 +E_CMDS_AUTH_FIPS_ESTATE: authentication not available in FIPS error state +0xB0830042 +E_CMDS_FIPS_BLOCKED: function not available in FIPS mode +0xB0830043 +E_CMDS_FIPS_ERROR_STATE: function not available in FIPS error state +0xB0830044 +E_CMDS_ADMIN_BAD_FUNC: function is blocked in Administration Mode +0xB0830046 +E_CMDS_MAX_AUTH_FAIL_READ: file for MaxAuthFailures corrupted +0xB0830050 +E_CMDS_LOGIN_CC: static login not allowed in CC mode +0xB0830051 +E_CMDS_AUTH_CC_ESTATE: authentication not available in CC error state +0xB0830052 +E_CMDS_CC_BLOCKED: function not available in CC mode +0xB0830053 +E_CMDS_CC_ERROR_STATE: function not available in CC error state +0xB0830054 +E_CMDS_CC_INIT: CC-CMS initialization failed +0xB0830055 +E_CMDS_BAD_PERM_CC: permissions must not overlap in CC mode +0xB0830056 +E_CMDS_CC_MISSING: cc-cms.msc module missing in flash +0xB0830057 +E_CMDS_BAD_TOKEN_CC: RSA token < 1024 bit not allowed in CC mode +0xB0830059 +E_CMDS_PARAM_CC: parameter not valid in CC mode +0xB083005A +E_CMDS_DENIED_CC: authentication mandatory in CC mode +0xB083005B +E_CMDS_BAD_MECH_CC: mechanism not allowed in CC mode +0xB083005C +E_CMDS_BAD_ATT_CC: user attributes not allowed in CC mode +0xB083005D +E_CMDS_BAD_USER_FLAG_CC: user flag not allowed in CC mode +0xB083005F +E_CMDS_SM_MISSING_CC: authentication without secure messaging not allowed in CC mode +0xB0830060 +E_CMDS_SM_DH_BAD_PARAM: DH parameter from host for sessionkey is weak +0xB0830061 +E_CMDS_SFC_DISABLED: This function is not available in this HSM configuration +0xB0830062 +E_CMDS_HASH_VERS: wrong version of HASH module +0xB0830063 +E_CMDS_CHALLENGE_LEN: illegal challenge length requested +0xB0830064 +E_CMDS_SM_MA_ALARM: Mutual Authentication not available in alarm state +0xB084 +E_VRSA: CryptoServer module VRSA +0xB0840001 +E_VRSA_MEM: cannot allocate memory +0xB0840002 +E_VRSA_BUFF_TOO_SMALL: buffer for result is to small +0xB0840003 +E_VRSA_BAD_DATA: bad raw data value +0xB0840004 +E_VRSA_BAD_MODULUS: modulus is not p * q +0xB0840006 +E_VRSA_P_GREATER_Q: p is greater or equal than q +0xB0840009 +E_VRSA_BAD_U: u is not (1/q) mod p +0xB084000A +E_VRSA_BAD_DP: dp is not d mod (p-1) +0xB084000B +E_VRSA_BAD_DQ: dq is not d mod (q-1) +0xB084000C +E_VRSA_NO_KEYTOKEN: byte string is not a keytoken +0xB084000D +E_VRSA_NO_COMP: component is not a member of this key token +0xB084000E +E_VRSA_DOUBLE_COMP: component is already a member of this key token +0xB084000F +E_VRSA_INVALID_FLAG: value for flags is invalid +0xB0840010 +E_VRSA_HASH_ALGO: Invalid hash algorithm +0xB0840011 +E_VRSA_VERIFY_FAILED: Signature verification failed +0xB0840012 +E_VRSA_KEY_TOO_SMALL: Key length too small +0xB0840014 +E_VRSA_MOD_TOO_SMALL: modulus to small +0xB0840015 +E_VRSA_BAD_KEY: bad key components P and Q +0xB0840016 +E_VRSA_DATA_LEN: data size too big (greater than modulus) +0xB0840017 +E_VRSA_MISS_COMP: missing component in key token +0xB0840018 +E_VRSA_INV_PARAM: invalid parameter +0xB0840019 +E_VRSA_BAD_PEXP: gcd(p-1,e) != 1 or gcd(q-1,e) != 1 +0xB084001A +E_VRSA_BAD_SEXP: d * e != 1 mod (p-1)(q-1) +0xB084001B +E_VRSA_OBSOLETE: function obsolete +0xB084001C +E_VRSA_KGEN_FAILED: key generation failed +0xB084001D +E_VRSA_BAD_BLINDING: invalid blinding value +0xB084001E +E_VRSA_BVGEN_FAILED: blinding value generation failed +0xB084001F +E_VRSA_DECRYPT_FAILED: PKCS#1 decryption failed +0xB0840020 +E_VRSA_INV_PEXP: invalid public exponent +0xB0840021 +E_VRSA_KEYT_LEN: bad length of key token +0xB0840022 +E_VRSA_ENCODING: PKCS#1 encoding error +0xB0840023 +E_VRSA_PAIRWISE_CONSISTENCY: The pairwise consistency test failed ! +0xB0840024 +E_VRSA_FUNC_NOT_AVAILABLE: Function is not available +0xB0840025 +E_VRSA_BAD_BLINDING_MECH: Blinding mechanism unknown +0xB0840100 +E_VRSA_BAD_KEYT: bad key token in command string +0xB0840101 +E_VRSA_RND_SYNC: random number request does not match (FIPS test) +0xB0840102 +E_VRSA_KEY_TOO_SMALL_FIPS: Key length too small (FIPS140) +0xB0840103 +E_VRSA_KEY_TOO_SMALL_CC: Key length too small (CC) +0xB085 +E_SC: CryptoServer Module SC +0xB0850001 +E_SC_APPL_NAME: Bad Length of Application Name +0xB0850002 +E_SC_APDU_SELECT: Card Error from "select" Command +0xB0850003 +E_SC_APDU_IAUTH: Card Error from "internal auth." Command +0xB0850004 +E_SC_BAD_KEY: Wrong SM Key +0xB0850005 +E_SC_APDU_VERPWD: Card Error from "ver. passw." Command +0xB0850006 +E_SC_APDU_MSE: Card Error from "mse" Command +0xB0850007 +E_SC_APDU_READREC: Card Error from "read record" Command +0xB0850008 +E_SC_RECLEN: Bad Record Length +0xB0850009 +E_SC_NO_RECORD: Record not Found +0xB085000A +E_SC_NO_FILE: File not Found +0xB085000B +E_SC_DENIED: Access Denid +0xB085000C +E_SC_BAD_PARAM: Bad Parameter: SFI, REC# +0xB085000D +E_SC_DATALEN: Bad Data Length +0xB085000E +E_SC_SM: Bad Tag for SM +0xB085000F +E_SC_APDU_UPDREC: Card Error from "update record" Command +0xB0850010 +E_SC_APDU_CHGPWD: Card Error from "chg. passw." Command +0xB0850011 +E_SC_NO_PWDFILE: Pasword File not Found +0xB0850012 +E_SC_BAD_PDATA: Bad Personalization Data +0xB0850013 +E_SC_APDU_PERS: Card Error while Personalizing +0xB0850014 +E_SC_APDU_GETSKEY: Card Error from "get sessionkey" Command +0xB0850015 +E_SC_NO_APPL: Application not Found +0xB0850016 +E_SC_APDU_READBIN: Card Error from "read binary" Command +0xB0850017 +E_SC_BAD_PIN_LEN: Bad PIN Length +0xB0850018 +E_SC_MEM: Memory Allocation Error +0xB0850019 +E_SC_APDU_PSO: Card Error from "pso" Command +0xB085001A +E_SC_BAD_CERT: Bad Certificate Format +0xB085001B +E_SC_APDU_GETDATA: Card Error from "get data" Command +0xB085001C +E_SC_BAD_APPLTYPE: Unknown Application Type +0xB085001D +E_SC_NOT_IMPLEMENTED: This Action is not Implmented on the Found Card Type +0xB085001E +E_SC_INVALID_PIN: Invalid Pin +0xB085001F +E_SC_NOT_SUPPORTED: Signing Supported until 48 Byte (Possible Hashes md5, ripemd160, sha1, sha224) +0xB0850020 +E_SC_WRONG_CARD_MODE: Wrong Command for Card Application +0xB0850021 +E_SC_HASH_SIZE: Hash Size Bigger than 40% of the Key Size +0xB0850022 +E_SC_NOPEN_OR_UNKNOWN: Card not Opened Before or Unknown Card +0xB086 +E_UTIL: CryptoServer module UTIL +0xB0860001 +E_UTIL_RTC_OPEN: Error opening RTC Device +0xB0860002 +E_UTIL_RTC_IOCTL: RTC: IOCTL Error +0xB0860003 +E_UTIL_RTC_READ: RTC: Read Error +0xB0860004 +E_UTIL_RTC_WRITE: RTC: Write Error +0xB0860005 +E_UTIL_RTC_CLOSE: Error closing RTC Device +0xB0860006 +E_UTIL_TIME_WRONG_FORMAT: Wrong Time Format +0xB0860007 +E_UTIL_TIME_NULL_POINTER: Null Pointer given +0xB0860008 +E_UTIL_FILE_OPEN: File Open Error +0xB0860009 +E_UTIL_FILE_READ: File Read Error +0xB086000A +E_UTIL_FILE_CLOSE: File Close Error +0xB086000B +E_UTIL_RND_NULL_POINTER: Null Pointer given +0xB086000C +E_UTIL_RND_FAILED: Random Number Generator failed +0xB086000D +E_UTIL_MALLOC: Error allocating Memory +0xB086000E +E_UTIL_INVAL: invalid argument +0xB086000F +E_UTIL_NOT_SUPPORTED: function not supported +0xB0860010 +E_UTIL_RND_KAT: Known answer test failed +0xB0860011 +E_UTIL_RND_INIT: Random Number Generator is not initialized +0xB0860012 +E_UTIL_RND_PARAMETER: Bad Parameter +0xB0860013 +E_UTIL_RND_SEC_STRENGTH: Given security strength not supported +0xB0860014 +E_UTIL_RND_REQ: Max number of requested randombits per call exceeded +0xB0860015 +E_UTIL_RND_PRED_RESISTANCE: prediction resistance not supported for current handle +0xB0860020 +E_UTIL_TIME_RTC_POWER_FAILED: RTC has lost power +0xB0860021 +E_UTIL_TIME_NOT_INIT: RTC is not initialized (RTC has to be set) +0xB086FC00 +E_UTIL_LINK_SMOS: SMOS Version does not match +0xB087 +E_ADM: CryptoServer module ADM +0xB0870001 +E_ADM_FILE_OPEN: file open error +0xB0870002 +E_ADM_FILE_READ: file read error +0xB0870003 +E_ADM_FILE_WRITE: file write error +0xB0870004 +E_ADM_FILE_CLOSE: file close error +0xB0870005 +E_ADM_FILE_MISSING: file (module) does not exist +0xB0870006 +E_ADM_WRONG_FILE_NAME: wrong filename syntax +0xB0870007 +E_ADM_NO_MDL_INFO: no module info found +0xB0870008 +E_ADM_FILE_NOT_FOUND: file not found +0xB087000A +E_ADM_MDL_VERSION_MISSING: no modules version found +0xB087000B +E_ADM_DATA_LEN: wrong command data length +0xB087000C +E_ADM_I2C_OPEN: unable to open i2c device +0xB087000D +E_ADM_I2C_READ: unable to read i2c device +0xB087000F +E_ADM_PERMISSION_DENIED: permission denied +0xB0870011 +E_ADM_FILE_SIZE_TOO_BIG: file size exceeds limit +0xB0870012 +E_ADM_BAD_SIGNATURE: bad signature +0xB0870013 +E_ADM_NO_UTIL: no UTIL module present +0xB0870014 +E_ADM_MALLOC: memory allocation error +0xB0870015 +E_ADM_NOT_SUPPORTED: function not supported +0xB0870016 +E_ADM_INVALID_CRC: invalid crc +0xB0870017 +E_ADM_INVALID_SIZE: invalid size +0xB0870018 +E_ADM_BAD_MMC: bad MMC format +0xB0870019 +E_ADM_NO_HASH: no HASH module present +0xB087001A +E_ADM_NO_VRSA: no VRSA module present +0xB087001B +E_ADM_NO_DB: no DB module present +0xB087001C +E_ADM_NO_AES: no AES module present +0xB087001D +E_ADM_MDL_DEC_FAIL: module decryption failed +0xB087001E +E_ADM_KEY_TYPE: invalid key type +0xB087001F +E_ADM_INVALID_PARAM: invalid parameter +0xB0870020 +E_ADM_FILE_TYPE: invalid file type +0xB0870021 +E_ADM_ITEM_LEN: invalid item length +0xB0870022 +E_ADM_ITEM_NOT_FOUND: item not found +0xB0870023 +E_ADM_NO_MBK: no MBK module present +0xB0870024 +E_ADM_NO_MBK_KEY: no MBK key available +0xB0870025 +E_ADM_MEM: cannot allocate memory +0xB0870026 +E_ADM_MEM_SEC: cannot allocate secure memory +0xB0870027 +E_ADM_MBK_DB_EXP: export of MBK database not allowed +0xB0870028 +E_ADM_MBK_TYPE: invalid MBK value (valid: 0 (DES), 1 (AES)) +0xB0870029 +E_ADM_MBK_DIFFER: given MBK type differs to stored MBK with the highest priority +0xB087002A +E_ADM_MAC: given MAC differs to calculated MAC +0xB087002B +E_ADM_KEY_INDEX: given DB index differs to original DB index +0xB087002C +E_ADM_SESSION_DB_IMP: import of database session.db not allowed +0xB087002D +E_ADM_SESSION_DB_EXP: export of database session.db not allowed +0xB087002E +E_ADM_MBK_DB_IMP: import of MBK database not allowed +0xB087003 +E_ADM_MDL: module section +0xB0870030 +E_ADM_MDL_MTC_HDR_INV: invalid MTC header +0xB0870031 +E_ADM_MDL_MMC_HDR_INV: invalid MMC header +0xB0870032 +E_ADM_MDL_MSC_HDR_INV: invalid MSC header +0xB0870033 +E_ADM_MDL_SIG_HDR_INV: invalid MSC header +0xB0870034 +E_ADM_MDL_SLF_HDR_INV: invalid SLF header +0xB0870035 +E_ADM_MDL_NO_INFO: no module info found +0xB0870036 +E_ADM_MDL_MTC_NO_SIG: MTC doesn't contain signature +0xB0870037 +E_ADM_MDL_MMC_HASH: invalid MMC hash +0xB0870038 +E_ADM_MDL_DECRYPT: can't decrypt firmware module +0xB0870039 +E_ADM_MDL_SCF_HDR_INV: invalid SCF header +0xB087004 +E_ADM_KEY: key section +0xB0870040 +E_ADM_KEY_CORRUPTED: key is corrupted +0xB087005 +E_ADM_CFG: cfg section +0xB0870051 +E_ADM_CFG_MDL_NOT_FOUND: could not retrieve version of requested module +0xB0870052 +E_ADM_CFG_MDL_TOO_OLD: requested module is too old, does not yet support cfg +0xB0870053 +E_ADM_CFG_MDL_UNKNOWN: unknown module, unknown how to cfg +0xB0870054 +E_ADM_CFG_AMSK_BLOCKED: loading of an Alternative Module Signature Key is blocked +0xB087006 +E_ADM_FIPS: FIPS section +0xB0870061 +E_ADM_FIPS_MDL: evaluation of FIPS mode has gone wrong +0xB0870062 +E_ADM_FIPS_RESTRICTED: virtual error code for restricted FIPS mode +0xB0870063 +E_ADM_FIPS_BLOCKED: function not available in FIPS mode +0xB0870064 +E_ADM_FIPS_ERROR_STATE: function not available in FIPS error state +0xB0870070 +E_ADM_CC_BLOCKED: not allowed in CC Endorsed Mode +0xB0870071 +E_ADM_CC_ERROR_STATE: not allowed in CC Error State +0xB0870080 +E_ADM_AUTH_KEY_DB_IMP: import of authentication key database not allowed +0xB0870081 +E_ADM_AUTH_KEY_DB_EXP: export of authentication key database not allowed +0xB088 +E_DB: CryptoServer Database Module +0xB0880001 +E_DB_NO_MEM: memory allocation failed +0xB0880002 +E_DB_BAD_MKEY: bad master encryption key +0xB0880003 +E_DB_NO_SPACE: no space in database +0xB0880004 +E_DB_NOT_FOUND: record not found +0xB0880005 +E_DB_EXISTS: record already exists +0xB0880006 +E_DB_NO_CACHE: no space in cache +0xB0880007 +E_DB_COR_FILE: corrupted database file +0xB0880008 +E_DB_REC_CRC: record CRC error +0xB0880009 +E_DB_BAD_NAME: bad database name +0xB088000A +E_DB_BAD_HANDLE: bad database handle +0xB088000B +E_DB_FILE_TYPE: bad file type of database file +0xB088000D +E_DB_BAD_INFO: bad info structure +0xB088000E +E_DB_IN_USE: database in use +0xB088000F +E_DB_LENGTH: bad data length +0xB0880011 +E_DB_HDL_CONF: database handle confused +0xB0880012 +E_DB_INCONS: internal inconsistency +0xB0880013 +E_DB_SMOSVER: SMOS version is too old +0xB0881000 +E_DB_DATALEN: bad length of command block +0xB0881001 +E_DB_FILE_ERR: io error on database file +0xB0881002 +E_DB_NOT_OPEN: test database not open +0xB0881003 +E_DB_CORR_HDL: db handle corrupted +0xB0881004 +E_DB_CORR_NODE: db node corrupted +0xB0881005 +E_DB_CORR_CACHE: db cache corrupted +0xB089 +E_HASH: CryptoServer module HASH +0xB0890001 +E_HASH_MEM: Memory Error +0xB0890002 +E_HASH_PARAMETER: Illegal Parameter +0xB0890003 +E_HASH_LEN: Illegal Length +0xB0890004 +E_HASH_MODE: Illegal Mode +0xB0890005 +E_HASH_FUNCTION: Function not supported +0xB0890006 +E_HASH_MODE_FIPS: Mode not permitted in FIPS mode +0xB08B +E_AES: CryptoServer module AES +0xB08B0001 +E_AES_DATA_LEN: length of data is not a multiple of 16 bytes +0xB08B0002 +E_AES_KEY_LEN: length of key is not 16, 24, or 32 +0xB08B0003 +E_AES_MEM: cannot allocate memory +0xB08B0004 +E_AES_MODE: mode is unknown +0xB08B0005 +E_AES_CFB1_DEC_MODE: For cfb1 decryption the key must always prepared for encryption +0xB08B0006 +E_AES_PAD_TYPE: unknown padding mechanism +0xB08B0007 +E_AES_PAD: invalid padding +0xB08B0008 +E_AES_PARAM: invalid parameter +0xB08B0009 +E_AES_READ_MASTER_KEY: could not get local Master Key +0xB08B000A +E_AES_MODE_MISMATCH: mode of prepared key does not match mode parameter +0xB08B000C +E_AES_ZERO_LEN: Zero data length is not allowed +0xB08B000D +E_AES_CTR_OVERFLOW: Overflow of block counter in CTR chaining mode +0xB08B000E +E_AES_TAG_VERIFICATION: Tag verification on CCM/GCM decrypt failed +0xB08D +E_DSA: CryptoServer module DSA +0xB08D0001 +E_DSA_MEM: cannot allocate memory +0xB08D0002 +E_DSA_P_TOO_SMALL: prime P is too small +0xB08D0003 +E_DSA_Q_TOO_SMALL: prime Q is too small +0xB08D0004 +E_DSA_GEN_FAILED: domain parameter generation failed +0xB08D0005 +E_DSA_BAD_G: invalid generator value G +0xB08D0006 +E_DSA_BAD_PRIMES: bad primes P and Q +0xB08D0007 +E_DSA_NO_KEYTOKEN: byte string is not a keytoken +0xB08D0008 +E_DSA_NO_COMP: component is not a member of this token +0xB08D0009 +E_DSA_DOUBLE_COMP: component is already a member of this token +0xB08D000A +E_DSA_INVALID_FLAG: value for flags is invalid +0xB08D000B +E_DSA_HASH_LEN: wrong hash value length +0xB08D000C +E_DSA_BAD_KEY: private and public key do not correspond +0xB08D000D +E_DSA_INV_PARAM: invalid parameter +0xB08D000E +E_DSA_BAD_PKEY: bad public key +0xB08D000F +E_DSA_BAD_SKEY: bad private key +0xB08D0010 +E_DSA_KEYT_LEN: bad length of key token +0xB08D0011 +E_DSA_VERIFY_FAILED: signature verification failed +0xB08D0012 +E_DSA_BAD_SIGN_FMT: bad format of signature +0xB08D0013 +E_DSA_NO_ASN1: no ASN.1 module loaded +0xB08D0014 +E_DSA_BUFF_TOO_SMALL: buffer for result is to small +0xB08D0015 +E_DSA_KEYGEN_TEST: pairwise consistency check failed on keygen +0xB08D0018 +E_DSA_ZERO_LEN: Zero length not allowed +0xB08D0030 +E_DSA_NOT_SUPPORTED: The function called is no longer supported +0xB08D0100 +E_DSA_BAD_KEYT: bad key token in command string +0xB08E +E_LNA: CryptoServer module LNA +0xB08E0001 +E_LNA_OVL: result overflow +0xB08E0002 +E_LNA_NEG: result negativ +0xB08E0003 +E_LNA_MOD_LEN: modulus too short +0xB08E0004 +E_LNA_DATA_LEN: data greater than modulus +0xB08E0005 +E_LNA_MEM: can't alloc memory +0xB08E0006 +E_LNA_EXP0: exponent is 0 +0xB08E0007 +E_LNA_DIV0: division by zero +0xB08E0008 +E_LNA_NUM_LEN: number too short +0xB08E0009 +E_LNA_PARAM: bad parameter +0xB08E000A +E_LNA_NOT_FOUND: no prime found +0xB08E000B +E_LNA_MOD_EVEN: modulus is even +0xB08E0100 +E_LNA_RESOVL: result overflow +0xB08E0101 +E_LNA_ARG_LEN: bad argument length +0xB08E0102 +E_LNA_INT: internal error while generating prime +0xB08F +E_ECA: CryptoServer module ECA +0xB08F0001 +E_ECA_MEM: can't alloc memory +0xB08F0002 +E_ECA_NOT_SUPP: not supported +0xB08F0003 +E_ECA_BAD_PARAM: bad parameter +0xB08F0004 +E_ECA_NOT_FOUND: curve not found +0xB08F0005 +E_ECA_EXISTS: curve already registered +0xB08F0006 +E_ECA_TOO_BIG: input number too big +0xB08F0007 +E_ECA_INFINITE: infinite result +0xB08F0008 +E_ECA_PCP_INCOMP: incompatible precalculated point +0xB08F0009 +E_ECA_LEN: bad length of argument +0xB08F000A +E_ECA_BAD_TAG: bad tag of point +0xB08F000B +E_ECA_NO_SQRT: no square root found +0xB08F000C +E_ECA_NO_NON_RESIDUE: non-residue could not be found +0xB08F000D +E_ECA_NO_ASN1: no ASN.1 module found +0xB08F000E +E_ECA_ECDP_DECODE: error decoding ASN.1 EC domain parameter +0xB08F000F +E_ECA_BAD_POINT: bad value of EC point +0xB08F0010 +E_ECA_BAD_VALUE: bad value of EC domain parameter +0xB08F0011 +E_ECA_ECDP_DIFFER: EC domain parameters differ +0xB08F0012 +E_ECA_BAD_DOMAIN_PARA: invalid domain parameter +0xB08F0013 +E_ECA_BAD_POLYNOM: invalid irreducible polynomial +0xB08F0014 +E_ECA_NO_FIPS_CURVE: curve not available in FIPS mode +0xB08F0015 +E_ECA_NO_FIPS_FUNCTION: function not available in FIPS mode +0xB08F0016 +E_ECA_NO_SECURE_CURVE: Curve not secure for CC standards +0xB08F0017 +E_ECA_BL_TBL: table of precalculated values empty/inconsistent +0xB08F0101 +E_ECA_ARG_LEN: bad argument length +0xB08F0102 +E_ECA_INT: internal error +0xB090 +E_TECA: CryptoServer module TECA +0xB0900001 +E_TECA_PERMISSION_DENIED: permission denied +0xB0900002 +E_TECA_PARAM: invalid parameter +0xB0900003 +E_TECA_PARAM_LEN: invalid parameter length +0xB0900004 +E_TECA_MALLOC: memory allocation failed +0xB0900005 +E_TECA_MODE: invalid mode +0xB0900006 +E_TECA_ITEM_NOT_FOUND: item not found +0xB0900007 +E_TECA_MODULE_DEP: unresolved module dependency +0xB0900008 +E_TECA_FILE_IO: file I/O error +0xB091 +E_ASN1: CryptoServer module ASN1 +0xB0910001 +E_ASN1_MEM: Memory Error +0xB0910002 +E_ASN1_FLAG: Parameter flag is incorrect +0xB0910003 +E_ASN1_TAB_OVL: ASN1_ITEM table overflow +0xB0910004 +E_ASN1_BAD_ZKA: bad ZKA format +0xB0910005 +E_ASN1_DATASIZE: ASN1 data overrun +0xB0910006 +E_ASN1_TAGSIZE: tag too big +0xB0910007 +E_ASN1_INDEF_LEN: indefinite length not supportet +0xB0910008 +E_ASN1_LENSIZE: lenght field too big +0xB0910009 +E_ASN1_STACK_OVL: internal stack overflow +0xB091000A +E_ASN1_NOT_FOUND: item not found +0xB091000B +E_ASN1_BUFF_OVL: ASN1 buffer overflow +0xB091000C +E_ASN1_ITEMCOUNT: bad value of 'nitems' in ITEM table +0xB091000D +E_ASN1_BADTAG: zero tag +0xB091000E +E_ASN1_BAD_PKCS1: bad PKCS#1 format +0xB091000F +E_ASN1_DECODE_ERR: decoding error +0xB0910010 +E_ASN1_SIZE_EXCEEDED: calculated size exceeds given datasize +0xB096 +E_MBK: CryptoServer module MBK +0xB0960001 +E_MBK_PARA: Parameter mismatch +0xB0960002 +E_MBK_DB_NO_SERVICE: MBK database is suspended +0xB0960003 +E_MBK_NULL_PTR: Unexpected null pointer +0xB0960004 +E_MBK_PERMISSION: Permission denied +0xB0960005 +E_MBK_ISO_HASH_FAIL: ISO hash check of key failed +0xB0960006 +E_MBK_IG_KEY_TYPES_NM: Key types do not match +0xB0960007 +E_MBK_IG_KEY_DATE_NM: Key generation date do not match +0xB0960008 +E_MBK_IG_KEY_TIME_NM: Key generation time do not match +0xB0960009 +E_MBK_IG_KEY_NAME_NM: Key names do not match +0xB096000A +E_MBK_EX_KEY_CHK_FAIL: Verify of existing master key failed +0xB096000B +E_MBK_SLOT_EMPTY: Slot is empty +0xB096000C +E_MBK_KEY_NO: Slot number not valid +0xB096000D +E_MBK_REC_NO: Record number not valid +0xB096000E +E_MBK_KEY_LB: Key length not valid +0xB096000F +E_MBK_TIME_WRONG_FORMAT: Wrong format in time structure detected +0xB0960010 +E_MBK_BCD_LB: BCD coded time length mismatch +0xB0960011 +E_MBK_KEY_NAME: No key name or NULL pointer for key name +0xB0960012 +E_MBK_ACTION_CANCELED: Action canceled by user +0xB0960013 +E_MBK_MODE_INV: Invalid mode for AES key passed +0xB0960014 +E_MBK_DB_VERSION: Both versions of the MBK database exists +0xB0960015 +E_MBK_EI_PARA_SET_EXT: External parameter already set from extern and overwrite flag is not set +0xB0960016 +E_MBK_AES_NA: The AES Module is not available +0xB0960017 +E_MBK_KEY_TYPE: Invalid key type +0xB0960018 +E_MBK_ALLOC: memory allocation failed +0xB0960019 +E_MBK_BAD_DB_FORMAT: bad database format +0xB096001A +E_MBK_RECORD_EMPTY: smartcard record is empty +0xB096001B +E_MBK_SC_EMPTY: smartcard only contains empty records +0xB096001C +E_MBK_SEMA_REQ: unable to require semaphore +0xB096001D +E_MBK_MAX_KEK: maximum numbers of key exchange keys reached +0xB096001E +E_MBK_FLAGS_INV: invalid flags value +0xB096001F +E_MBK_INFO_LB: info length not valid +0xB0960020 +E_MBK_KEY_EXISTS: key alread exists +0xB0960021 +E_MBK_SHARE_LB: invalid length of key share +0xB0960022 +E_MBK_SHARE_CNT: invalid number of key shares +0xB0960023 +E_MBK_ECA_NA: the ECA module is not available +0xB0960024 +E_MBK_IG_KEY_SHARE_CNT_NM: number of key shares doesn't match +0xB0960025 +E_MBK_KEY_ID_INV: invalid key ID +0xB0960026 +E_MBK_KEY_ID_SAME: multiple occurence of same key ID +0xB0960027 +E_MBK_KEK_NOT_FOUND: no kek found with given hash +0xB0960028 +E_MBK_NOT_SUPPORTED: function is not supported +0xB0960029 +E_MBK_NO_PP: no PIN pad module found +0xB096002A +E_MBK_NO_SC: no smartcard module found +0xB096002B +E_MBK_FIPS_BLOCKED: function not available in FIPS mode +0xB096002C +E_MBK_CC_BLOCKED: not allowed in CC Endorsed Mode +0xB096002D +E_MBK_DEPRECATED: function is deprecated +0xB099 +E_PIN: CryptoServer module PIN +0xB0990001 +E_PIN_BAD_FMT: bad PIN block format +0xB0990002 +E_PIN_BAD_PARA: bad parameter +0xB0990003 +E_PIN_NO_MEM: can't allocate memory +0xB0990004 +E_PIN_BAD_LENGTH: bad PIN length +0xB0990005 +E_PIN_LESS_DIGITS: not enaugh digits found +0xB0990006 +E_PIN_BAD_XTAB: bad translation table +0xB0990007 +E_PIN_BAD_COND: bad PIN conditions +0xB0990008 +E_PIN_REJECT: PIN does not meet conditions +0xB09A +E_NTP: CryptoServer module NTP +0xB09A0001 +E_NTP_CMD_LEN: NTP: Command with invalid data length +0xB09A0002 +E_NTP_INVALID_TIME_DELAY: NTP: requested time delay too big +0xB09A0003 +E_NTP_DAILY_TIME_DELAY_EXCEEDED: NTP: daily time delay exceeded +0xB09A0004 +E_NTP_DEPRECATED_FUNCTION_CALL: NTP: old function call; use new one +0xB09A0005 +E_NTP_NEGATIVE_TIME_SET: NTP: negative time set; use flag to set backward +0xB09A0006 +E_NTP_NOT_ACTIVATED: NTP: ntp module is not activated +0xB09A0007 +E_NTP_DB_ERROR: NTP: database error +0xB09A0008 +E_NTP_PERMISSION_DENIED: NTP: permission denied +0xB09C +E_ECDSA: CryptoServer module ECDSA +0xB09C0001 +E_ECDSA_MEM: cannot allocate memory +0xB09C0002 +E_ECDSA_R_S_IS_NULL: null component in signature (r,s) +0xB09C0003 +E_ECDSA_INV_FLAG: value for flags is invalid +0xB09C0004 +E_ECDSA_BAD_KEY: private and public key do not correspond +0xB09C0005 +E_ECDSA_BAD_PKEY: bad public key +0xB09C0006 +E_ECDSA_BAD_SKEY: bad private key +0xB09C0007 +E_ECDSA_VERIFY_FAILED: signature verification failed +0xB09C0008 +E_ECDSA_BAD_SIGN_FMT: bad format of signature +0xB09C0009 +E_ECDSA_NO_ASN1: no ASN.1 module loaded +0xB09C000A +E_ECDSA_BUFF_TOO_SMALL: buffer for result is to small +0xB09C000B +E_ECDSA_BAD_KEY_FMT: malformed ASN.1 coded key pair +0xB09C000C +E_ECDSA_ECIES_PARAM: bad parameter +0xB09C000D +E_ECDSA_ECIES_MAC_CHECK: mac check of ecies encrypted data failed +0xB09C000E +E_ECDSA_NO_AES: no AES module loaded +0xB09C000F +E_ECDSA_KEYGEN_TEST: pairwise consistency check failed on keygen +0xB09C0010 +E_ECDSA_ZERO_LEN: Zero length not allowed +0xB09C0011 +E_ECDSA_NO_SEC_MODE: secure mode of curve not available +0xB09C0012 +E_ECDSA_BULK_MAX: count of signatures per command exceeds limit +0xB900 +E_CSA: CryptoServer API +0xB90000 +E_CSA_CORE: CryptoServer API core functions +0xB9000000 +E_CSA_CORE_BAD_TAG: bad tag in data block +0xB9000001 +E_CSA_CORE_HANDLE: invalid handle +0xB9000002 +E_CSA_CORE_INVAL: invalid argument +0xB9000003 +E_CSA_CORE_MEM: can't alloc memory +0xB9000004 +E_CSA_CORE_STACK: malformed protocol stack +0xB9000005 +E_CSA_CORE_SIZE: data block too big +0xB9000007 +E_CSA_CORE_V24_DEV: bad V24 device +0xB9000008 +E_CSA_CORE_V24_PARAM: bad V24 parameter +0xB9000009 +E_CSA_CORE_BLK_LEN: can't calculate block length +0xB900000A +E_CSA_CORE_EMPTY: empty command block +0xB900000B +E_CSA_CORE_BAD_ANSW: malformed answer block from CSLAN +0xB900000C +E_CSA_CORE_V24_CTRL: can't set V24 device +0xB900000D +E_CSA_CORE_NO_V24: V24 mode not activated +0xB900000E +E_CSA_CORE_V24_CRC: V24 crc error on read +0xB9000010 +E_CSA_CORE_FMT_LEN: bad length within format string (scanf) +0xB9000011 +E_CSA_CORE_BAD_CMD: bad format of command block +0xB9000012 +E_CSA_CORE_BAD_OUT: bad parameter structure (scanf) +0xB9000013 +E_CSA_CORE_BAD_FMT: bad format string (scanf) +0xB9000014 +E_CSA_CORE_SCANF: cs_scanf not supported +0xB9000015 +E_CSA_CORE_HDL_IN_USE: CSAPI handle still in use +0xB90001 +E_CSA_KS: command layer for old KryptoServer +0xB9000100 +E_CSA_KS_ALEN: length error of answer block +0xB9000101 +E_CSA_KS_CLEN: bad length error of command data +0xB9000102 +E_CSA_KS_PARAM: missing parameter structure +0xB90002 +E_CSA_CMDS: command layer CMDS for CryptoServer +0xB9000200 +E_CSA_CMDS_ALEN: length error of answer block +0xB9000201 +E_CSA_CMDS_CLEN: bad length of command data +0xB9000202 +E_CSA_CMDS_PARAM: missing parameter structure +0xB9000203 +E_CSA_CMDS_TAG: bad tag of answer block +0xB90003 +E_CSA_CHNL: command layer CHNL for CryptoServer +0xB9000300 +E_CSA_CHNL_ALEN: length error of answer block +0xB9000301 +E_CSA_CHNL_TAG: bad tag of answer block +0xB90004 +E_CSA_AUTH: authentication layer for CryptoServer +0xB9000400 +E_CSA_AUTH_ALEN: length error of answer block +0xB9000401 +E_CSA_AUTH_BAD_FC: invalid function code +0xB9000402 +E_CSA_AUTH_BAD_ANSW: malformed answer block +0xB9000403 +E_CSA_AUTH_BAD_MECH: invalid authentication mechanism +0xB9000404 +E_CSA_AUTH_HASH_ERR: error in hash function +0xB9000405 +E_CSA_AUTH_SIGN_ERR: error in signature function +0xB9000406 +E_CSA_AUTH_HMAC_ERR: error in HMAC function +0xB90005 +E_CSA_BL: command layer BL for CryptoServer +0xB9000500 +E_CSA_BL_ALEN: length error of answer block +0xB9000501 +E_CSA_BL_CLEN: bad length error of command data +0xB9000502 +E_CSA_BL_PARAM: missing parameter structure +0xB9000503 +E_CSA_BL_TAG: bad tag of answer block +0xB90006 +E_CSA_SM: secure messaging layer for CryptoServer +0xB9000600 +E_CSA_SM_ALEN: length error of answer block +0xB9000601 +E_CSA_SM_BAD_ANSW: malformed answer block +0xB9000602 +E_CSA_SM_BAD_MECH: invalid SM mechanism +0xB9000603 +E_CSA_SM_NO_DATA: zero length data +0xB9000604 +E_CSA_SM_DES_ERR: en- / decryption / MAC error +0xB9000605 +E_CSA_SM_UNWRAP: secure messaging unwrap error +0xB9000A +E_CSA_CDI: command layer CDI for CryptoServer +0xB9000A00 +E_CSA_CDI_ALEN: length error of answer block +0xB9000A01 +E_CSA_CDI_CLEN: bad length error of command data +0xB9000A02 +E_CSA_CDI_PARAM: missing parameter structure +0xB9000A03 +E_CSA_CDI_TAG: bad tag of answer block +0xB9000C +E_CSA_TL: command layer TL for CryptoServer +0xB9000C00 +E_CSA_TL_ALEN: length error of answer block +0xB9000C01 +E_CSA_TL_TAG: bad tag of answer block +0xB9000E +E_CSA_DUMY: command layer DUMY for CryptoServer +0xB9000E00 +E_CSA_DUMY_ALEN: length error of answer block +0xB9000E01 +E_CSA_DUMY_CLEN: bad length error of command data +0xB9000E02 +E_CSA_DUMY_PARAM: missing parameter structure +0xB901 +E_CSA_LX: CryptoServer API LINUX +0xB9010001 +E_CSA_LX_PATH: path name too long +0xB9010002 +E_CSA_LX_PORT: bad port number +0xB9010003 +E_CSA_LX_ADDR: bad IP address +0xB9010004 +E_CSA_LX_HOSTNAME: bad host name +0xB9010005 +E_CSA_LX_TERM: connection terminated by remote host +0xB9010006 +E_CSA_LX_MEM: can't alloc memory +0xB9010007 +E_CSA_LX_TIMEOUT: timeout occured +0xB9010008 +E_CSA_LX_INVAL: invalid argument +0xB9010009 +E_CSA_LX_ADDRLEN: no space for sockaddr (internal error) +0xB901000A +E_CSA_LX_BLKSIZE: bad block size received +0xB901000B +E_CSA_LX_NOT_RDY: no ready message from CMDS +0xB901000C +E_CSA_LX_CRIT_TEMP: cs2 exceeds critical temperature +0xB901000D +E_CSA_LX_PROC: error on /proc file +0xB901000E +E_CSA_LX_DEV: can't stat device file +0xB901000F +E_CSA_LX_BUF_SIZE: buffer size too small +0xB9011 +E_CSA_LX_OPEN: can't open device +0xB9012 +E_CSA_LX_SOCKET: can't creat socket +0xB9013 +E_CSA_LX_CONNECT: can't get connection +0xB9014 +E_CSA_LX_POLL: error while polling +0xB9015 +E_CSA_LX_READ: read error +0xB9015701 +E_CSA_LX_READ_701: timeout +0xB9015706 +E_CSA_LX_READ_706: operation interruptet by reset +0xB9015707 +E_CSA_LX_READ_707: high temperature +0xB901570A +E_CSA_LX_READ_70A: CryptoServer halted +0xB901570B +E_CSA_LX_READ_70B: panic message from CryptoServer +0xB9016 +E_CSA_LX_WRITE: write error +0xB9016701 +E_CSA_LX_WRITE_701: timeout +0xB9016703 +E_CSA_LX_WRITE_703: request rejectet by CS2 +0xB9016706 +E_CSA_LX_WRITE_706: operation interruptet by reset +0xB9016707 +E_CSA_LX_WRITE_707: high temperature +0xB901670A +E_CSA_LX_WRITE_70A: CryptoServer halted +0xB901670B +E_CSA_LX_WRITE_70B: panic message from CryptoServer +0xB9017 +E_CSA_LX_IOCTL: ioctl error +0xB9017701 +E_CSA_LX_IOCTL_701: timeout +0xB9017706 +E_CSA_LX_IOCTL_706: operation interrupted by reset +0xB9017707 +E_CSA_LX_IOCTL_707: high temperature +0xB901770A +E_CSA_LX_IOCTL_70A: CryptoServer halted +0xB901770B +E_CSA_LX_IOCTL_70B: panic message from CryptoServer +0xB901773 +E_CSA_LX_IOCTL_73: reset of CryptoServer failed +0xB9018 +E_CSA_LX_LOCK: ioctl error (locking) +0xB9018706 +E_CSA_LX_LOCK_706: operation interruptet by reset +0xB9019 +E_CSA_LX_RECV: tcp receive error +0xB901A +E_CSA_LX_SEND: tcp send error +0xB902 +E_CSA_WIN: CryptoServer API Windows +0xB9020001 +E_CSA_WIN_PATH: path name too long +0xB9020002 +E_CSA_WIN_PORT: bad port number +0xB9020003 +E_CSA_WIN_ADDR: bad IP address +0xB9020004 +E_CSA_WIN_HOSTNAME: bad host name +0xB9020005 +E_CSA_WIN_TERM: connection terminated by remote host +0xB9020006 +E_CSA_WIN_MEM: can't alloc memory +0xB9020007 +E_CSA_WIN_TIMEOUT: timeout occured +0xB9020008 +E_CSA_WIN_INVAL: invalid argument +0xB9020009 +E_CSA_WIN_ADDRLEN: no space for sockaddr (internal error) +0xB902000A +E_CSA_WIN_BLKSIZE: bad block size received +0xB902000B +E_CSA_WIN_CMDS_NOT_RDY: no ready message from CMDS +0xB902000C +E_CSA_WIN_CRIT_TEMP: cs2 exceeds critical temperature +0xB9020010 +E_CSA_WIN_INVALID_PARAM: invalid parameter +0xB9020011 +E_CSA_WIN_INVALID_HANDLE: invalid handle value +0xB9020013 +E_CSA_WIN_CREATE_MUTEX: error creating mutex +0xB9020014 +E_CSA_WIN_LOCK: unable to set lock +0xB9020015 +E_CSA_WIN_LOCK_TIMEOUT: timeout while waiting for mutex +0xB9020016 +E_CSA_WIN_LOCK_HANDLE: no valid mutex object +0xB90201 +E_CSA_WIN_OPEN: tcp: can't open device +0xB90202 +E_CSA_WIN_SOCKET: tcp: can't create socket +0xB90203 +E_CSA_WIN_CONNECT: tcp: can't get connection +0xB90204 +E_CSA_WIN_POLL: tcp: error while polling +0xB90204F0 +E_CSA_WIN_CONNECT_FAIL: can't get connection +0xB90205 +E_CSA_WIN_READ: tcp: read error +0xB90206 +E_CSA_WIN_WRITE: tcp: write error +0xB90207 +E_CSA_WIN_INIT: tcp: init error +0xB90208 +E_CSA_WIN_IOCTL: tcp: ioctl error +0xB9021 +E_CSA_WIN_DCI_OPEN: dci: can't open device +0xB9022 +E_CSA_WIN_DCI_READ: read error +0xB9022001 +E_CSA_WIN_DCI_READ_RLEN: read returned wrong length +0xB90220B5 +E_CSA_WIN_DCI_READ_TMOUT: read timeout +0xB9022706 +E_CSA_WIN_DCI_READ_706: operation interruptet by reset +0xB9022707 +E_CSA_WIN_DCI_READ_707: high temperature +0xB902273 +E_CSA_WIN_DCI_READ_73: reset failed +0xB9023 +E_CSA_WIN_DCI_WRITE: dci: write error +0xB9023001 +E_CSA_WIN_DCI_WRITE_RLEN: write returned wrong length +0xB90230B5 +E_CSA_WIN_DCI_WRITE_TMOUT: write timeout +0xB9023706 +E_CSA_WIN_DCI_WRITE_706: operation interrupted by reset +0xB9023707 +E_CSA_WIN_DCI_WRITE_707: high temperature +0xB902373 +E_CSA_WIN_DCI_WRITE_73: reset failed +0xB9024 +E_CSA_WIN_DCI_IOCTL: dci: ioctl error +0xB9024001 +E_CSA_WIN_DCI_IOCTL_NOT_RDY: no ready message from CMDS +0xB90240B5 +E_CSA_WIN_DCI_IOCTL_TMOUT: ioctl timeout +0xB9024706 +E_CSA_WIN_DCI_IOCTL_706: operation interruptet by reset +0xB9024707 +E_CSA_WIN_DCI_IOCTL_707: high temperature +0xB902473 +E_CSA_WIN_DCI_IOCTL_73: reset failed +0xB9025 +E_CSA_WIN_MTX: mutex section +0xB9028 +E_CSA_WIN_TCP_STARTUP: tcp: startup error +0xB9029 +E_CSA_WIN_TCP_ADDR: tcp: address error +0xB902A +E_CSA_WIN_TCP_SOCKET: tcp: can't create socket +0xB902B +E_CSA_WIN_TCP_CONNECT: tcp: can't get connection +0xB902B03C +E_CSA_WIN_TCP_CONNECT_TIMEOUT: connection attempt timed out +0xB902B03D +E_CSA_WIN_TCP_CONNECT_REFUSED: connection attempt refused +0xB902C +E_CSA_WIN_TCP_SELECT: tcp: error on select +0xB902D +E_CSA_WIN_TCP_RECV: tcp: receive error +0xB902E +E_CSA_WIN_TCP_SEND: tcp: send error +0xB902F +E_CSA_WIN_TCP_IOCTL: tcp: ioctl error +0xB904 +E_YACL: yacl library +0xB90400 +E_YACL_DES: DES modul +0xB9040000 +E_YACL_DES_KEY_LEN: length of DES-Key is not 8, 16 or 24 byte +0xB9040001 +E_YACL_DES_DATA_LEN: length of input data is not a multiple of 8 +0xB9040013 +E_YACL_ECA_BAD_POLYNOM: invalid irreducible polynomial +0xB90401 +E_YACL_RSA: RSA modul +0xB9040100 +E_YACL_RSA_RESULT_TOO_LONG: effective length of result is greater +0xB9040101 +E_YACL_RSA_OPERAND_TOO_LONG: effective length of on input operand +0xB9040102 +E_YACL_RSA_RESULT_NEGATIV: result of subtraction would be negativ +0xB9040103 +E_YACL_RSA_DIVISOR_ZERO: divisor/modulus is zero with division +0xB9040104 +E_YACL_RSA_BAD_OPERAND: operand for 'esm' is greater than modulus +0xB90402 +E_YACL_LNA: Long Number Arithmetic +0xB9040201 +E_YACL_LNA_OVL: result overflow +0xB9040202 +E_YACL_LNA_NEG: result negativ +0xB9040203 +E_YACL_LNA_MOD_LEN: modulus too short +0xB9040204 +E_YACL_LNA_DATA_LEN: data greater than modulus +0xB9040205 +E_YACL_LNA_MEM: can't alloc memory +0xB9040206 +E_YACL_LNA_EXP0: exponent is 0 +0xB9040207 +E_YACL_LNA_DIV0: division by zero +0xB9040208 +E_YACL_LNA_NUM_LEN: number too short +0xB9040209 +E_YACL_LNA_PARAM: bad parameter +0xB904020A +E_YACL_LNA_NOT_FOUND: no prime found +0xB904020B +E_YACL_LNA_MOD_EVEN: modulus is even +0xB90403 +E_YACL_VRSA: RSA functions +0xB9040301 +E_YACL_VRSA_MEM: cannot allocate memory +0xB9040302 +E_YACL_VRSA_BUFF_TOO_SMALL: buffer for result is to small +0xB9040303 +E_YACL_VRSA_DATA_LEN: data size too big (greater than modulus) +0xB9040304 +E_YACL_VRSA_BAD_MODULUS: modulus is not p * q +0xB9040305 +E_YACL_VRSA_P_GREATER_Q: p is greater then q +0xB9040306 +E_YACL_VRSA_BAD_U: u is not (1/q) mod p +0xB9040307 +E_YACL_VRSA_BAD_DP: dp is not d mod (p-1) +0xB9040308 +E_YACL_VRSA_BAD_DQ: dq is not d mod (q-1) +0xB9040309 +E_YACL_VRSA_BAD_PEXP: gcd(p-1,e) != 1 or gcd(q-1,e) != 1 +0xB904030A +E_YACL_VRSA_BAD_SEXP: d * e != 1 mod (p-1)(q-1) +0xB904030B +E_YACL_VRSA_KEY_TOO_SMALL: Key length too small +0xB904030C +E_YACL_VRSA_MOD_TOO_SMALL: modulus to small +0xB904030D +E_YACL_VRSA_BAD_KEY: bad key components +0xB904030E +E_YACL_VRSA_INV_PARAM: invalid parameter +0xB904030F +E_YACL_VRSA_KGEN_FAILED: key generation failed +0xB9040310 +E_YACL_VRSA_HASH_ALGO: Invalid hash algorithm +0xB9040311 +E_YACL_VRSA_VERIFY_FAILED: Signature verification failed +0xB9040312 +E_YACL_VRSA_DECRYPT_FAILED: PKCS#1 decryption failed +0xB9040313 +E_YACL_VRSA_ENCODING: PKCS#1 encoding error +0xB9040314 +E_YACL_VRSA_INV_PEXP: invalid public exponent +0xB90404 +E_YACL_SAFER: SAFER module +0xB9040400 +E_YACL_SAFER_KEY_LEN: length of SAFER-Key is not 8 or 16 +0xB9040401 +E_YACL_SAFER_DATA_LEN: length of input data is not a multiple of 8 +0xB90405 +E_YACL_RND: Pseudo Random Number Generator +0xB9040501 +E_YACL_RND_NULL_POINTER: Null pointer in argument +0xB9040502 +E_YACL_RND_WRONG_SEED_LENGTH: Wrong length of seed +0xB9040503 +E_YACL_RND_AUTO_INIT: Can't auto initialize rnd generator +0xB90406 +E_YACL_AES: AES module +0xB9040600 +E_YACL_AES_KEY_LEN: length of AES-Key is not 16, 24 or 32 +0xB9040601 +E_YACL_AES_DATA_LEN: length of input data is not a multiple of 16 +0xB9040602 +E_YACL_AES_PARAM: bad input parameter (eg. NULL pointer not allowed) +0xB90408 +E_YACL_ASN1: ASN1 module +0xB9040821 +E_YACL_ASN1_MEM: Memory Error +0xB9040822 +E_YACL_ASN1_FLAG: Parameter flag is incorrect +0xB9040823 +E_YACL_ASN1_TAB_OVL: ASN1_ITEM table overflow +0xB9040824 +E_YACL_ASN1_COMP_FLAG: Component flag is not defined +0xB9040825 +E_YACL_ASN1_DATASIZE: ASN1 data overrun +0xB9040826 +E_YACL_ASN1_TAGSIZE: tag too big +0xB9040827 +E_YACL_ASN1_INDEF_LEN: indefinite length not supportet +0xB9040828 +E_YACL_ASN1_LENSIZE: lenght field too big +0xB904082A +E_YACL_ASN1_NOT_FOUND: item not found +0xB904082B +E_YACL_ASN1_BUFF_OVL: ASN1 buffer overflow +0xB904082C +E_YACL_ASN1_ITEMCOUNT: bad value of 'nitems' in ITEM table +0xB904082D +E_YACL_ASN1_BADTAG: zero tag +0xB904082F +E_YACL_ASN1_DECODE_ERR: decoding error +0xB9040830 +E_YACL_ASN1_SIZE_EXCEEDED: calculated size exceeds given datasize +0xB90409 +E_YACL_HASH: Hash module +0xB9040901 +E_YACL_HASH_MODE: Invalid hash mode +0xB9040902 +E_YACL_HASH_LEN: Invalid length +0xB9040903 +E_YACL_HASH_PARAM: Invalid parameter +0xB9040A +E_YACL_ECA: module ECA +0xB9040A01 +E_YACL_ECA_MEM: can't alloc memory +0xB9040A02 +E_YACL_ECA_NOT_SUPP: not supported +0xB9040A03 +E_YACL_ECA_BAD_PARAM: bad parameter +0xB9040A04 +E_YACL_ECA_NOT_FOUND: curve not found +0xB9040A05 +E_YACL_ECA_EXISTS: curve already registered +0xB9040A06 +E_YACL_ECA_TOO_BIG: input number too big +0xB9040A07 +E_YACL_ECA_INFINITE: infinite result +0xB9040A08 +E_YACL_ECA_PCP_INCOMP: incompatible precalculated point +0xB9040A09 +E_YACL_ECA_LEN: bad length of argument +0xB9040A0A +E_YACL_ECA_BAD_TAG: bad tag of point +0xB9040A0B +E_YACL_ECA_NO_SQRT: no square root found +0xB9040A0C +E_YACL_ECA_NO_NON_RESIDUE: non-residue could not be found +0xB9040A0D +E_YACL_ECA_NO_ASN1: no ASN.1 module found +0xB9040A0E +E_YACL_ECA_ECDP_DECODE: error decoding ASN.1 EC domain parameter +0xB9040A0F +E_YACL_ECA_BAD_POINT: bad value of EC point +0xB9040A10 +E_YACL_ECA_BAD_VALUE: bad value of EC domain parameter +0xB9040A11 +E_YACL_ECA_ECDP_DIFFER: EC domain parameters differ +0xB9040A12 +E_YACL_ECA_BAD_DOMAIN_PARA: invalid domain parameter +0xB9040B +E_YACL_ECDSA: module ECDSA +0xB9040B01 +E_YACL_ECDSA_MEM: cannot allocate memory +0xB9040B02 +E_YACL_ECDSA_R_S_IS_NULL: null component in signature (r,s) +0xB9040B03 +E_YACL_ECDSA_INV_FLAG: value for flags is invalid +0xB9040B04 +E_YACL_ECDSA_BAD_KEY: private and public key do not correspond +0xB9040B05 +E_YACL_ECDSA_BAD_PKEY: bad public key +0xB9040B06 +E_YACL_ECDSA_BAD_SKEY: bad private key +0xB9040B07 +E_YACL_ECDSA_VERIFY_FAILED: signature verification failed +0xB9040B08 +E_YACL_ECDSA_BAD_SIGN_FMT: bad format of signature +0xB9040B09 +E_YACL_ECDSA_NO_ASN1: no ASN.1 module loaded +0xB9040B0A +E_YACL_ECDSA_BUFF_TOO_SMALL: buffer for result is to small +0xB9040B0B +E_YACL_ECDSA_BAD_KEY_FMT: malformed ASN.1 coded key pair +0xB9040C +E_YACL_DSA: module DSA +0xB9040C01 +E_YACL_DSA_P_TOO_SMALL: prime P is too small +0xB9040C02 +E_YACL_DSA_Q_TOO_SMALL: prime Q is too small +0xB9040C03 +E_YACL_DSA_GEN_FAILED: domain parameter generation failed +0xB9040C04 +E_YACL_DSA_BAD_G: invalid generator value G +0xB9040C05 +E_YACL_DSA_BAD_PRIMES: bad primes P and Q +0xB9040C06 +E_YACL_DSA_HASH_LEN: hash value too long +0xB9040C07 +E_YACL_DSA_BAD_KEY: private and public key do not correspond +0xB9040C08 +E_YACL_DSA_INV_PARAM: invalid parameter +0xB9040C09 +E_YACL_DSA_BAD_PKEY: bad public key +0xB9040C0A +E_YACL_DSA_BAD_SKEY: bad private key +0xB9040C0B +E_YACL_DSA_VERIFY_FAILED: signature verification failed +0xB9040C0C +E_YACL_DSA_BAD_SIGN_FMT: bad format of signature +0xB9040C0D +E_YACL_DSA_BUFF_TOO_SMALL: buffer for result is to small +0xB9040D +E_YACL_PK: PK module +0xB9040D01 +E_YACL_PK_PARAMETER: invalid parameter +0xB9040D02 +E_YACL_PK_MEMORY: memory allocation failed +0xB9040D03 +E_YACL_PK_UNKNOWN_DN_TYPE: unknown distinguished name type +0xB9040D04 +E_YACL_PK_INVALID_DN: invalid distinguished name (value or length) +0xB9040D05 +E_YACL_PK_INVALID_TIME_FORMAT: invalid time format +0xB9040D06 +E_YACL_PK_UNKNOWN_KEY_TYPE: unknown / unsupported key type +0xB9040D07 +E_YACL_PK_UNKNOWN_SIGN_ALGO: unknown / unsupported signature algorithm +0xB9040D08 +E_YACL_PK_UNKNOWN_HASH_ALGO: unknown / unsupported hash algorithm +0xB9040D09 +E_YACL_PK_INVALID_VERSION: invalid / unsupported version +0xB9040D0A +E_YACL_PK_P7_UNKNOWN_CONTENT_TYPE: unknown / unsupported PKCS7 content type +0xB9040D0B +E_YACL_PK_P7_NO_VERSION_FOUND: no PKCS7 version found +0xB9040D0C +E_YACL_PK_P7_UNKNOWN_ELEM_TYPE: unknown PKCS7 element type +0xB9040D0D +E_YACL_PK_P7_ELEM_TYPE_SIGNATURE: element type SIGNATURE not found +0xB9040D0E +E_YACL_PK_P7_ELEM_TYPE_ENVELOPED: element type ENVELOPED not found +0xB9040D0F +E_YACL_PK_P7_ELEM_TYPE_CERT: element type CERT not found +0xB9040D10 +E_YACL_PK_P7_ELEM_TYPE_AUTH_ATT: element type AUTH_ATT not found +0xB9040D11 +E_YACL_PK_P7_ELEM_TYPE_UNAUTH_ATT: element type UNAUTH_ATT not found +0xB9040D12 +E_YACL_PK_P7_ELEM_TYPE_SIG_TIME: element type SIG_TIME not found +0xB9040D13 +E_YACL_PK_P7_ELEM_TYPE_DATA: element type DATA not found +0xB9040D14 +E_YACL_PK_P7_SIGNER_CERTIFICATE: no signer certificate given +0xB9040D15 +E_YACL_PK_P7_NO_DATA_OR_HASH: no data or hash given to perform sign / verify operation +0xB9040D16 +E_YACL_PK_P7_INVALID_CONTENT_TYPE: invalid PKCS7 content type +0xB9040D17 +E_YACL_PK_P7_NO_DIGEST_ALGORITHM: no digest algorithm in PKCS7 data found +0xB9040D18 +E_YACL_PK_P7_NO_SIGNER_INFOS: no signer infos found +0xB9040D19 +E_YACL_PK_P7_NO_ISSUER: no issuer / serial number found +0xB9040D1A +E_YACL_PK_P7_NO_OF_ELEM: number of PK_P7_ELEM too small +0xB9040D1B +E_YACL_PK_P7_SIGNER_REF: invalid signer reference +0xB9040D1C +E_YACL_PK_P7_CONTENT_TYPE_NOT_SD: content type is not SignedData +0xB9040D1D +E_YACL_PK_P7_CONTENT_TYPE_NOT_ENV: content type is not Enveloped +0xB9040D1E +E_YACL_PK_P7_KEY_TYPE_MISMATCH: digestEncryptionAlgorithm doesn't match signer certificate key type +0xB9040D1F +E_YACL_PK_P7_VERIFICATION: signature verfication failed +0xB9040D20 +E_YACL_PK_P7_RECIPIENT_CERT: no recipient certificate given +0xB9040D21 +E_YACL_PK_P7_UNKNOWN_ENC_KEY_TYPE: unknown / unsupported encryption key type +0xB9040D22 +E_YACL_PK_P7_MULTIPLE_RCPTS: multiple recipients not supported +0xB9040D23 +E_YACL_PK_P7_CERT_MISMATCH: given certificate doesn't match certificate in PKCS7 structure +0xB9040D24 +E_YACL_PK_P7_KEK_ALGO: given key doesn't match key encryption algorithm +0xB9040D25 +E_YACL_PK_P7_NO_ENC_KEY_ALGO: no key encryption algorithm identifier found +0xB9040D26 +E_YACL_PK_P7_NO_CONTENT_TYPE: no content type found +0xB9040D27 +E_YACL_PK_P7_NO_CONTENT_KEY_ALGO: no content encryption algorithm identifier found +0xB9040D28 +E_YACL_PK_P7_ATTRIBUTE: invalid attribute structure +0xB9040D29 +E_YACL_PK_P7_NEED_MORE_SPACE: given buffer / struct doesn't contain enough space for this operation +0xB9040D30 +E_YACL_PK_TIME_ERROR: Unable to retrieve system time / convert time; +0xB9040D31 +E_YACL_PK_UNKNOWN_ATT_TYPE: unknown attribute type +0xB9040D32 +E_YACL_PK_CRL_ISSUER_MISMATCH: CRL issuer doesn't match certificate's subject / issuer +0xB9040D33 +E_YACL_PK_CRL_ATTR_NOT_AVAILABLE: requested attribute not available (optional) +0xB9040D34 +E_YACL_PK_CRL_BAD_FORMAT: bad CRL format +0xB9040D35 +E_YACL_PK_CRL_NOT_VALID: CRL is not yet valid +0xB9040D36 +E_YACL_PK_CRL_INIT_NOT_CALLED: partial CRL verification not initialized +0xB9040D40 +E_YACL_PK_UNSUPPORTED_TIME_FORMAT: unsupported time format +0xB9040D41 +E_YACL_PK_UNSUPPORTED_CENTURY: given time format contains century < 1900 +0xB9040D42 +E_YACL_PK_INDEF_LEN: indefinite length not supportet +0xB9040D50 +E_YACL_PK_P7_INVALID_SIGNER: invalid signer / invalid signer information +0xB9040D51 +E_YACL_PK_P7_INVALID_SIGNER_STRUCT: invalid signer structure (ASN.1 error) +0xB9040E +E_YACL_CRYPT: crypt module +0xB9040E01 +E_YACL_OLD_CRYPT_VERSION: Old Crypt Version +0xB905 +E_SL: Serial Driver +0xB9050001 +E_SL_TOOMANY: too many lines open +0xB9050002 +E_SL_TCATTR: error setting line parameters +0xB9050003 +E_SL_OPEN: can't open device +0xB9050004 +E_SL_NOT_OPEN: handle not open +0xB9050005 +E_SL_NO_VALID_HDL: invalid handle +0xB9050006 +E_SL_NO_VALID_PARA_VALUE: invalid parameter value +0xB9050007 +E_SL_NO_VALID_PARA_TYPE: invalid parameter type +0xB9050008 +E_SL_READ_ERROR: error on read +0xB9050009 +E_SL_READ_TIME_OUT: timeout on read +0xB905000A +E_SL_WRITE_ERROR: error on write +0xB905000B +E_SL_WRITE_TIME_OUT: timeout on write +0xB905000C +E_SL_CTRL_ERROR: error on ioctl +0xB9050010 +E_SL_NO_VALID_NAME: no valid device name +0xB9050011 +E_SL_NO_VALID_BUF_SLCT: no valid Buffer selected +0xB9050012 +E_SL_NO_VALID_LINE_STATE: line state parameter incorrect +0xB9050013 +E_SL_NO_VALID_LINE_SLCT: line select parameter incorrect +0xB9050014 +E_SL_COM_STATE: error in comunication driver +0xB9050015 +E_SL_PARITY: Parity Error +0xB9050016 +E_SL_FRAME: Frame Error +0xB9050017 +E_SL_FLUSH_FAILED: Flush failed +0xB9050018 +E_SL_READ_EOF: EOF on read +0xB906 +E_CAL: CryptoServer admin library +0xB9060001 +E_CAL_BAD_MEM: malloc() failed +0xB9060002 +E_CAL_PPAPP_LIST: malformed PIN-Pad application list +0xB9061 +E_CAL_UTL: Utility Functions +0xB9061001 +E_CAL_UTL_FILE_OPEN: File Open Error +0xB9061002 +E_CAL_UTL_KEY_INIT: Key Structure has not been initialized +0xB9061003 +E_CAL_UTL_KEY_FILE_OPEN: unable to open Keyfile +0xB9061004 +E_CAL_UTL_KEY_FILE_TYPE: unknown Type of Keyfile +0xB9061005 +E_CAL_UTL_KEY_FILE_READ: Error reading Keyfile +0xB9061006 +E_CAL_UTL_KEY_FILE_WRITE: Error writing Keyfile +0xB9061007 +E_CAL_UTL_KEY_TOK_FORMAT: Wrong Keyfile Format in .tok file +0xB9061008 +E_CAL_UTL_KEY_ASC_FORMAT: Wrong Keyfile Format in .key file +0xB9061009 +E_CAL_UTL_KEY_WRONG_FILENAME: Wrong File Name +0xB906100A +E_CAL_UTL_KEY_SOURCE: invalid Key Source (file or smartcard) +0xB906100B +E_CAL_UTL_KEY_TYPE: invalid Key Type (private or public) +0xB906100C +E_CAL_UTL_KEY_INVALID_DATA_LEN: invalid Data Length +0xB906100D +E_CAL_UTL_KEY_INVALID_LEN: invalid Key Length +0xB906100E +E_CAL_UTL_KEY_DECRYPT: can't decrypt keyfile +0xB906100F +E_CAL_UTL_KEY_PASSFCT: no get_pass function specified (or twice) +0xB9061010 +E_CAL_UTL_TIME_WRONG_FORMAT: Wrong Time Format YYYYMMDDHHMMSS +0xB9061011 +E_CAL_UTL_FILE_NOT_FOUND: file not found +0xB9061012 +E_CAL_UTL_INVALID_PARAM: invalid parameter +0xB9061013 +E_CAL_UTL_NOT_SUPPORTED: function not supported +0xB9062 +E_CAL_BL: Bootloader Command Interface +0xB9062001 +E_CAL_BL_SHA1: Error calculating Hash with SHA1 +0xB9062002 +E_CAL_BL_RSA: error executing RSA +0xB9062003 +E_CAL_BL_NO_RND: no random value present +0xB9062004 +E_CAL_BL_INVALID_PARAM: invalid parameter +0xB9062005 +E_CAL_BL_INVALID_KEY: invalid key format +0xB9062006 +E_CAL_BL_FILE_OPEN: file open error +0xB9062007 +E_CAL_BL_FILE_READ: file read error +0xB9062008 +E_CAL_BL_MALLOC: memory allocation error +0xB9062009 +E_CAL_BL_RESPONSE_ERR: response error from Cryptoserver +0xB906200A +E_CAL_BL_WRONG_FILE_NAME: Module Name Syntax incorrect +0xB906200B +E_CAL_BL_WRONG_RSP_LENGTH: Wrong Response Length from CS2 +0xB906200C +E_CAL_BL_NO_FILE: file does not exist +0xB906200D +E_CAL_BL_TIME_CONVERT: unable to convert time +0xB906200E +E_CAL_BL_KEY_SIZE: invalid key size +0xB906200F +E_CAL_BL_NO_EXT_ERASE: no external erase prevailing +0xB9063 +E_CAL_ADM: Admin Module Command Interface +0xB9063001 +E_CAL_ADM_INVALID_PARAM: invalid Parameter +0xB9063002 +E_CAL_ADM_WRONG_NAME: File Name Syntax incorrect +0xB9063003 +E_CAL_ADM_FILE_OPEN: File Open Error +0xB9063004 +E_CAL_ADM_FILE_READ: File Read Error +0xB9063005 +E_CAL_ADM_WRONG_PATH: File Path incorrect +0xB9063006 +E_CAL_ADM_MALLOC: Memory Allocation Error +0xB9063007 +E_CAL_ADM_WRONG_RSP_LENGTH: wrong response length from CS2 +0xB9063008 +E_CAL_ADM_NO_FILE: file does not exist +0xB9063009 +E_CAL_ADM_BATT_STATE: unknown battery state +0xB906300A +E_CAL_ADM_TIME_CONVERT: unable to convert time +0xB906300B +E_CAL_ADM_AUDIT_BAD: malformed audit log file +0xB906300C +E_CAL_ADM_NO_EXT_ERASE: no external erase prevailing +0xB906300D +E_CAL_ADM_AUDITCFG_SVM: struct version mismatch (binary length) +0xB906300E +E_CAL_ADM_INVALID_NO_ARGS: invalid number of arguments returning +0xB906300F +E_CAL_ADM_MODEL_NOT_SUITABLE: file not suitable for cryptoserver model +0xB9063010 +E_CAL_ADM_FILE_WRITE: File Write Error +0xB9064 +E_CAL_MXC: MMC / MTC tools +0xB9064001 +E_CAL_MXC_MALLOC: Memory Allocation Error +0xB9064002 +E_CAL_MXC_FILE_OPEN: unable to open file +0xB9064003 +E_CAL_MXC_FILE_READ: Error reading file +0xB9064004 +E_CAL_MXC_FILE_WRITE: Error writing file +0xB9064005 +E_CAL_MXC_FILE_TYPE: unknown file type +0xB9064006 +E_CAL_MXC_INVALID_ENC_MODE: invalid encryption mode +0xB9064007 +E_CAL_MXC_NO_MDL_INFO: Module does not contain mdl_info +0xB9064008 +E_CAL_MXC_READ_MMC_HEADER: Error reading mmc-header +0xB9064009 +E_CAL_MXC_READ_MTC_HEADER: Error reading mtc-header +0xB906400A +E_CAL_MXC_DES_KEYGEN_DIV8: key length isn't divisible by 8 +0xB906400B +E_CAL_MXC_DES_DECRYPT: Error executing DES Decryption +0xB906400C +E_CAL_MXC_DES_ENCRYPT: Error executing DES Encryption +0xB906400D +E_CAL_MXC_HASH_SHA1: Error executing SHA1 Hash +0xB906400E +E_CAL_MXC_HASH_INVALID_ALGO: invalid Hash algo +0xB906400F +E_CAL_MXC_INVALID_SIG_KEY: invalid Signature Key +0xB9064010 +E_CAL_MXC_PARAM_NULL_POINTER: Null Pointer in Parameter +0xB9064011 +E_CAL_MXC_NO_SIG: Container is without Signature +0xB9064012 +E_CAL_MXC_NO_SIG_INFO: MTC is without Signature Info +0xB9064013 +E_CAL_MXC_INVALID_MMC_HDR: invalid MMC header +0xB9064014 +E_CAL_MXC_INVALID_MTC_HDR: invalid MTC header +0xB9064015 +E_CAL_MXC_INVALID_SIG_HDR: invalid signature header +0xB9064016 +E_CAL_MXC_ENC_NOT_SUPPORTED: encryption not supported +0xB9064017 +E_CAL_MXC_NO_CPU_INFO: unknown target CPU of Module +0xB9064018 +E_CAL_MXC_NO_FW_DEC_KEY: firmware decryption key required +0xB9064019 +E_CAL_MXC_NO_FW_DEC_ERR: error decrypting firmware module +0xB906401A +E_CAL_MXC_SIGN_TYPE: invalid sign type +0xB906401B +E_CAL_MXC_NO_DATA: write operation with zero data blocks +0xB9064020 +E_CAL_MXC_SIG_INVALID_ALGO: invalid signature algo +0xB9064021 +E_CAL_MXC_SIG_CMP_RESULT: calculated Hash doesn't match with decrypted Hash +0xB9064022 +E_CAL_MXC_SIG_INVALID_MODULUS: invalid RSA Modulus to en-/decrypt signature +0xB9064023 +E_CAL_MXC_SIG_INVALID_PUBEXP: invalid RSA Public Exponent to decrypt signature +0xB9064024 +E_CAL_MXC_SIG_INVALID_PRVEXP: invalid RSA Modulus Exponent to encrypt signature +0xB9064025 +E_CAL_MXC_SIG_RSA_DECRYPT: Error RSA-decryption signature +0xB9064026 +E_CAL_MXC_SIG_RSA_ENCRYPT: Error RSA-encrypting signature +0xB9064027 +E_CAL_MXC_SIG_READ_HEADER: Error reading header of signature +0xB9064028 +E_CAL_MXC_SIG_INVALID_HASH_ALGO: invlaid Hash algo for signature +0xB9064029 +E_CAL_MXC_SIG_INVALID_KEY_LEN: invalid Key Length +0xB906402A +E_CAL_MXC_SIG_INVALID_BTYPE: invalid block type +0xB906402B +E_CAL_MXC_SIG_INVALID_PKCS1: invalid pkcs#1 format +0xB906402C +E_CAL_MXC_SIG_BAD_HASH: bad hash value +0xB906402D +E_CAL_MXC_NO_HW_INFO: unknown target hardware of Module +0xB906402E +E_CAL_MXC_DOUBLE_SIGNED: cannot sign an already signed SCF file +0xB9064040 +E_CAL_MXC_PARSE: parse error found in licence file +0xB9064041 +E_CAL_MXC_NO_LICFILE: not a licence file +0xB9064050 +E_CAL_MXC_NO_FILES: package archive contains no files +0xB9066 +E_CAL_AUTH: Authentication / Session layer +0xB9066001 +E_CAL_AUTH_BAD_USERNAME: Bad user name +0xB9066002 +E_CAL_AUTH_BAD_MEM: malloc failed +0xB9066003 +E_CAL_AUTH_BAD_LIST: bad user list returned from CS2 +0xB9066004 +E_CAL_AUTH_ALEN: bad length of answer from CS2 +0xB9066006 +E_CAL_AUTH_KEY_SIZE: specified keysize does not match smartcard +0xB9066008 +E_CAL_AUTH_INVAL: invalid parameter +0xB9066009 +E_CAL_AUTH_USER_EXIST: user already exists +0xB906600A +E_CAL_AUTH_FILE_EXIST: file already exists +0xB906600B +E_CAL_AUTH_FILE_OPEN: file open error +0xB906600C +E_CAL_AUTH_FILE_READ: file read error +0xB906600D +E_CAL_AUTH_FILE_WRITE: file write error +0xB906600E +E_CAL_AUTH_BAD_BACKUP: bad user backup data +0xB906600F +E_CAL_AUTH_USER_SKIPPED: at least one user has been skipped +0xB9066010 +E_CAL_AUTH_NO_LONG_NAME: long username not supported +0xB9066011 +E_CAL_AUTH_NOT_SUPPORTED: function not supported +0xB9066012 +E_CAL_AUTH_BAD_HALGO: unknown hash algorithm +0xB9066013 +E_CAL_AUTH_RSA_MODE: only CRT sign supported +0xB9066014 +E_CAL_AUTH_SM_MECH: illegal SM mechanism +0xB9066015 +E_CAL_AUTH_DEC_SKEY: error decrypting session key +0xB9066016 +E_CAL_AUTH_SIG_BUFF: buffer too small for signature +0xB9066017 +E_CAL_AUTH_SMC_ID: too many concurrent SC authentications +0xB9066018 +E_CAL_AUTH_NO_PUBKEY: no public key found on smartcard +0xB9066019 +E_CAL_AUTH_SM_BAD_MODE: illegal SM mode +0xB906601A +E_CAL_AUTH_SM_BAD_SIGNATURE: CryptoServer's signature could not be verified +0xB906601B +E_CAL_AUTH_SM_BAD_KEY_FILE: illegal format in auth keys file +0xB906601C +E_CAL_AUTH_KEY_NOT_FOUND: auth keys file does not contain key for this CryptoServer +0xB906601D +E_CAL_AUTH_KEY_TYPE_UNSUPPORTED: HSM auth key type not supported +0xB906601E +E_CAL_AUTH_KEY_MODE_UNSUPPORTED: HSM auth key mode not supported +0xB9067 +E_CAL_CSL: CSL Command Interface +0xB9067001 +E_CAL_CSL_INVALID_REC_LEN: invalid record length returned +0xB9067002 +E_CAL_CSL_MALLOC: memory allocation error +0xB9067003 +E_CAL_CSL_INVALID_DATA_LEN: invalid data length returned +0xB9067004 +E_CAL_CSL_CRYPT: password encryption failed +0xB9067005 +E_CAL_CSL_INVAL_PARAM: invalid parameter +0xB9067006 +E_CAL_CSL_BFSIZE: buffer size too small +0xB9067007 +E_CAL_CSL_ANSW_DATA: invalid answer data +0xB9068 +E_CAL_PKG: PKG Command Interface +0xB9068001 +E_CAL_PKG_FOP: accessing directory failed +0xB9068002 +E_CAL_PKG_FNAME_LEN: filename too long +0xB9068003 +E_CAL_PKG_FOPEN: open file failed +0xB9068004 +E_CAL_PKG_FREAD: read file failed +0xB9068005 +E_CAL_PKG_FWRITE: write file failed/ +0xB9068006 +E_CAL_PKG_MEMORY: memory allocation failed +0xB9068007 +E_CAL_PKG_NO_FILES: directory contains no files +0xB9068008 +E_CAL_PKG_INVALID_FILE: invalid package file +0xB9068009 +E_CAL_PKG_INVALID_NAME: invalid package name +0xB906800A +E_CAL_PKG_DIR_EXISTS: directory already exist +0xB906800B +E_CAL_PKG_CREATE_DIR: creating directory failed +0xB906800C +E_CAL_PKG_PARAM: Invalid parameter +0xB906800D +E_CAL_PKG_KEY: No key specifier given +0xB906800E +E_CAL_PKG_SLF_NAME: Invalid SingedLicenseFile name +0xB9068010 +E_CAL_PKG_LOOP: Possible loop in state machine detected +0xB9068011 +E_CAL_PKG_LOAD_FILE: Load file failed +0xB9068012 +E_CAL_PKG_FW_CONFIG: different module names with the same id /abbrev - config mismatch +0xB9068013 +E_CAL_PKG_MDL_START_NOK: could not start firmware module(s) +0xB9068014 +E_CAL_PKG_MDL: CryptoServer firmware module(s) differs from archive content +0xB9068015 +E_CAL_PKG_FLAGS_BLCLEAR: Given flag forbids to perform a BLClear +0xB9068016 +E_CAL_PKG_BASE_FIRMWARE: base firmware is missing / incomplete +0xB9068017 +E_CAL_PKG_FW_NO_ARCHIVE: firmware module not contained in archive +0xB9068018 +E_CAL_PKG_FW_CPU_TYPE: firmware module is contained in archive but with different CPU type +0xB9068019 +E_CAL_PKG_ALARM: CryptoServer in alarm state +0xB906801A +E_CAL_PKG_UNDEF_STATE: cryptoserver remains in an undefined state +0xB906801B +E_CAL_PKG_TMP_DIR: creating temporary directory failed +0xB906801C +E_CAL_PKG_OLD_SDK: old CryptoServer SDK version not supported +0xB906801D +E_CAL_PKG_VERIFICATION: verification of firmware package failed +0xB9068020 +E_CAL_PKG_AUTH_PARAM: bad auth/sm parameter +0xB9068021 +E_CAL_PKG_SESSION: bad session +0xB9068022 +E_CAL_PKG_FLAGS: illegal flag parameter +0xB9068023 +E_CAL_PKG_MODEL: package loader <--> CryptoServer model mismatch +0xB9069 +E_CAL_MBK: MBK tools +0xB9069001 +E_CAL_MBK_PKCS1_FORMAT: bad pkcs1 format +0xB9069002 +E_CAL_MBK_BUF_SIZE: buffer size too small +0xB9069003 +E_CAL_MBK_RESP_LEN: invalid response length +0xB9069004 +E_CAL_MBK_ALLOC: memory allocation failed +0xB9069005 +E_CAL_MBK_FILE_OPEN: unable to open file +0xB9069006 +E_CAL_MBK_FILE_FORMAT: invalid file format +0xB9069007 +E_CAL_MBK_PARAM_INVAL: invalid parameter +0xB9069008 +E_CAL_MBK_ACTION_CANCELED: aborted by user +0xB9069009 +E_CAL_MBK_RESP_DATA: invalid answer data +0xB906900A +E_CAL_MBK_KEY_LEN: invalid key length +0xB906900B +E_CAL_MBK_NO_PWD: no password given +0xB906900C +E_CAL_MBK_NO_SESSION: no session +0xB9069010 +E_CAL_MBK_SC_ERR: smartcard responds error +0xB9069011 +E_CAL_MBK_SC_NO_RECORD: record not found +0xB9069012 +E_CAL_MBK_SC_NO_FILE: file not found +0xB9069013 +E_CAL_MBK_SC_DENIED: access denied +0xB9069014 +E_CAL_MBK_SC_SM: secure messaging failed +0xB9069015 +E_CAL_MBK_SC_RECLEN: invalid record length +0xB9069016 +E_CAL_MBK_SC_VERIFY_FAILED: password verification failed +0xB9069017 +E_CAL_MBK_SC_CARD_LOCKED: smartcard is locked +0xB9069018 +E_CAL_MBK_SC_PIN_REPETITION: bad pin repetition +0xB9069019 +E_CAL_MBK_SC_NULL_PIN: null pin still active +0xB906902 +E_CAL_MBK_SC_INVALID_PIN: invalid pin +0xB906A +E_CAL_SMC: cs2adm smartcard tools +0xB906A001 +E_CAL_SMC_ALLOC: memory allocation failed +0xB906A002 +E_CAL_SMC_BAD_DEV_NAME: bad device name +0xB906A003 +E_CAL_SMC_TOOMANY: too many open handles +0xB906A004 +E_CAL_SMC_ID_IN_USE: requested smc_id already in use +0xB906A005 +E_CAL_SMC_CHANNEL_NOT_OPEN: channel is not open +0xB906A006 +E_CAL_SMC_DATA_LEN: invalid data length +0xB906A007 +E_CAL_SMC_BUF_SIZE: buffer size too small +0xB906A008 +E_CAL_SMC_LOCKED: smartcard is locked +0xB906A009 +E_CAL_SMC_BAD_RESPONSE: bad response from smartcard +0xB906A00A +E_CAL_SMC_CARD_UNKNOWN: unknown smartcard +0xB906A00B +E_CAL_SMC_FCT_NOT_SUPP: function not supported for given cardtype +0xB906A00C +E_CAL_SMC_EXTD_APDU_N_SUPP: function not supported for given cardtype +0xB906A00D +E_CAL_SMC_PARAMETER: bad parameter given +0xB906A00E +E_CAL_SMC_LOGIN_MISS: login condition for this function not supplied +0xB906A00F +E_CAL_SMC_BAD_KEYSIZE: keylength not suitable for given card +0xB906A010 +E_CAL_SMC_PIN_LEN: invalid PIN length +0xB906A011 +E_CAL_SMC_FILE_NOT_FOUND: PIN file doesn't exist +0xB906A012 +E_CAL_SMC_NULLPIN: Null-PIN is still active +0xB906A01C +E_CAL_SMC_INVALID_PIN: PIN is invalid, no tries left +0xB906A01D +E_CAL_SMC_INVALID_PIN1: PIN is invalid, 1 try left +0xB906A01E +E_CAL_SMC_INVALID_PIN2: PIN is invalid, 2 tries left +0xB906A01F +E_CAL_SMC_INVALID_PIN3: PIN is invalid, 3 or more tries left +0xB906A020 +E_CAL_SMC_RECOVER_BAD_DATA: bad data from backup card +0xB906A021 +E_CAL_SMC_RECOVER_TOO_MANY: more keyhalfs given than existing +0xB906A022 +E_CAL_SMC_COS_BAD_DATA: bad data structure on Siemens CardOS card +0xB906B +E_CAL_NTP: NTP Module Command Interface +0xB906B001 +E_CAL_NTP_INVALID_PARAM: invalid Parameter +0xB906B002 +E_CAL_NTP_WRONG_RSP_LENGTH: wrong response length from CS2 +0xB906B003 +E_CAL_NTP_TIME_CONVERT: unable to convert time +0xB906C001 +E_CAL_CLONE_FILE_EMPTY: there are no database entries in the given file +0xB906F +E_CAL_CLONE: Clone Database Command Interface +0xB906F002 +E_CAL_CLONE_FILE_STRUCTURE: incorrect structure of backup file +0xB906F003 +E_CAL_CLONE_FILE_OPEN: unable to open backup file +0xB906F004 +E_CAL_CLONE_MALLOC: memory allocation failed +0xB906F005 +E_CAL_CLONE_FILE_LEN: incorrect length of backup file +0xB906F006 +E_CAL_CLONE_SEARCH_KEY1: cannot find search_key1 +0xB906F007 +E_CAL_CLONE_SEARCH_KEY2: cannot find search_key2 +0xB906F008 +E_CAL_CLONE_SNIPPET_LEN: invalid length of snippet +0xB908 +E_DSP: LCD Display module +0xB9080001 +E_DSP_DATALEN: string too long +0xB9080002 +E_DSP_MAXDSP: Cannot open another display +0xB9080003 +E_DSP_TIMEOUT: timeout reached +0xB9080004 +E_DSP_MEM: memory allocation failed +0xB9080005 +E_DSP_HDL: display not open +0xB9080006 +E_DSP_CANCEL: dsp_getexp cancelled +0xB9080007 +E_DSP_PARAM: parameter out of range +0xB90A +E_CSLAN: CSLAN +0xB90A01 +E_CSLAN_CTRL: CSLAN Control Module +0xB90A0101 +E_CSLAN_CTRL_BADCMD: wrong parameter +0xB90A0102 +E_CSLAN_CTRL_FAILED: system call failure +0xB90A0103 +E_CSLAN_CTRL_DENIED: wrong permission for file operations +0xB90A0104 +E_CSLAN_CTRL_NO_ROUTE: no relation between port and cs device +0xB90A0105 +E_CSLAN_CTRL_FILE: no such file +0xB90A0106 +E_CSLAN_CTRL_BADSIZE: length mismatch for vchar parameter +0xB90A0107 +E_CSLAN_CTRL_RESET: operation aborted because cs has been reset +0xB90A0108 +E_CSLAN_CTRL_AUTH: authentication failed +0xB90A0109 +E_CSLAN_CTRL_MEM: memory allocation failed +0xB90A010A +E_CSLAN_CTRL_NO_SER: no serial number available +0xB90A010B +E_CSLAN_CTRL_LOCKED: CryptoServer is locked +0xB90A010C +E_CSLAN_CTRL_ALREADY_LOCKED: CryptoServer is already locked +0xB90A010D +E_CSLAN_CTRL_LOCK_DENIED: CryptoServer lock denied (on loadbalancing ports) +0xB90A010E +E_CSLAN_CTRL_NO_SPACE: No space left on device for this operation +0xB90A010F +E_CSLAN_CTRL_TO_MANY_ROUTES: To many routes for the state device(s) +0xB90A0120 +E_CSLAN_CTRL_NO_KSAPI: ksapi compatibility listener not found +0xB90A0121 +E_CSLAN_CTRL_INVALID_SFC: nonexistent subfunction code +0xB90A0201 +E_CSLAN_CTRL_CONFIG: illegal configuration file +0xB90A0301 +E_CSLAN_QUEUE: queue full +0xB90A0302 +E_CSLAN_AVAIL: no cryptoserver online +0xB90A0303 +E_CSLAN_LEN_MISMATCH: mismatch between real packet length and data length +0xB90A0304 +E_CSLAN_NO_CONN: connection table full +0xB90A0305 +E_CSLAN_MAPPING: ksapi compatibility mapping not found +0xB90B +E_CSADM: csadm Tool +0xB90B0001 +E_CSADM_MEM: memory allocation failed +0xB90B0002 +E_CSADM_PWD_NULL: NULL passphrase +0xB90B0003 +E_CSADM_PWD_DIFF: passphrase repetition wrong +0xB90B0004 +E_CSADM_BUF_SIZE: buffer size to small +0xB90B0005 +E_CSADM_CMD_WRONGCALL: command wrongly called +0xB90B0010 +E_CSADM_ARG_CNT: invalid number of arguments +0xB90B0011 +E_CSADM_ARG_FMT: invalid argument format +0xB90B0012 +E_CSADM_ABORT: aborted by user +0xB90B0013 +E_CSADM_ARG_LEN: invalid argument length +0xB90B0014 +E_CSADM_RESP_LEN: invalid response length +0xB90B0015 +E_CSADM_RESP_DATA: invalid response data +0xB90B0020 +E_CSADM_KEY_PART_CNT: invalid number of key parts +0xB90C +E_CSXAPI: CSXAPI +0xB90C0001 +E_CSXAPI_ALLOC: memory allocation failed +0xB90C0002 +E_CSXAPI_DATA_LEN: invalid data length +0xB90C0003 +E_CSXAPI_RESP_LEN: invalid response length +0xB90C0004 +E_CSXAPI_BUF_SIZE: buffer size too small +0xB90C0005 +E_CSXAPI_PARAM: invalid parameter value +0xB90C0006 +E_CSXAPI_MAX_PIN: maximum number of cached pins reached +0xB90C0007 +E_CSXAPI_SESSION_INVALID: invalid session +0xB90C01 +E_CSXAPI_CLUSTER: Cluster API +0xB90C0101 +E_CSXAPI_CLUSTER_OPEN: unable to open any device +0xB90C0102 +E_CSXAPI_CLUSTER_LOGON: unable to logon to any device +0xB90C0103 +E_CSXAPI_CLUSTER_EXEC: unable to execute command on any device +0xB90C0104 +E_CSXAPI_CLUSTER_NAME: unknown device name +0xB90C0105 +E_CSXAPI_CLUSTER_CON_PARAM: invalid connection parameter +0xB90C0106 +E_CSXAPI_CLUSTER_HDL_IN_USE: handle still in use +0xB90C1 +E_CSXAPI_WIN: windows system error +0xB90C2 +E_CSXAPI_UNIX: unix system error +0xB90D +E_ULOG: ulog library +0xB90D0001 +E_ULOG_TMOUT: timeout reading socket +0xB90D1 +E_ULOG_SOCKET: socket failed +0xB90D2 +E_ULOG_BIND: bind failed +0xB90D3 +E_ULOG_SEND: send failed +0xB90D4 +E_ULOG_POLL: poll failed +0xB90D5 +E_ULOG_RECV: recv failed +0xB90E +E_SDB: Simple Database library +0xB90E0001 +E_SDB_NO_MEM: memory allocation failed +0xB90E0002 +E_SDB_NO_DB: database file does not exist +0xB90E0003 +E_SDB_NOT_FOUND: record not found +0xB90E0004 +E_SDB_EXISTS: record already exists +0xB90E0005 +E_SDB_COR_FILE: corrupted database file +0xB90E0006 +E_SDB_BAD_HANDLE: bad database handle +0xB90E0007 +E_SDB_BAD_INFO: bad info structure +0xB90E0008 +E_SDB_LENGTH: bad data length +0xB90E0009 +E_SDB_LOCK: locking failed +0xB90E000A +E_SDB_FILE_NAME: invalid file name +0xB90E1 +E_SDB_SYS_OPEN: open failed +0xB90E2 +E_SDB_SYS_CREAT: creat failed +0xB90E3 +E_SDB_SYS_SEEK: lseek failed +0xB90E4 +E_SDB_SYS_READ: read failed +0xB90E5 +E_SDB_SYS_WRITE: write failed +0xB90E6 +E_SDB_MTX_CREATE: creating mutex failed +0xB90E7 +E_SDB_MTX_LOCK: locking mutex failed +0xB90E8 +E_SDB_FILE_LOCK: locking file failed +0xB90F +E_P11ADM: P11 admin library +0xB90F0001 +E_P11ADM_ALLOC: memory allocation error +0xB90F0002 +E_P11ADM_PARAM: invalid parameter +0xB90F0003 +E_P11ADM_BUF_SIZE: insufficient buffer size +0xB90F0004 +E_P11ADM_KEY_TYPE: invalid key type +0xB90F0005 +E_P11ADM_FILE_OPEN: unable to open / create file +0xB90F0006 +E_P11ADM_MECHANISM: invalid mechanism +0xB90F0007 +E_P11ADM_KEY_LEN: invalid key length +0xB90F1 +E_P11ADM_OSSL: OpenSSL section +0xB90F2 +E_P11ADM_PKCS11: PKCS#11 section +0xB912 +E_HSD: Host Service Daemon +0xB9120001 +E_HSD_MALLOC: memory allocation error +0xB9120002 +E_HSD_WSASTARTUP: error on WSAStartup +0xB9120003 +E_HSD_WSACLEANUP: error on WSACleanup +0xB9120004 +E_HSD_CREATEMUTEX: err creating mutex +0xB9120005 +E_HSD_NO_DEVICES: error creating socket +0xB9120006 +E_HSD_CREATESOCKET: socket creating error +0xB9120007 +E_HSD_TIMEOUT: timeout +0xB9120008 +E_HSD_TERM: connection was terminated +0xB9120009 +E_HSD_INVALID_DATA_LEN: invalid cmds data length +0xB912000A +E_HSD_INVALID_HDR_LEN: invalid cmds header length +0xB912000B +E_HSD_INVALID_ARG: invalid argument +0xB912000C +E_HSD_BINDSOCKET: binding socket failed +0xB912000D +E_HSD_LISTEN: listen failed +0xB912000E +E_HSD_SETSOCKOPT: setsockopt failed +0xB912000F +E_HSD_BAD_CONFIG: bad configuration +0xB9120010 +E_HSD_PROTOCOL: protocol error +0xB9120011 +E_HSD_LOAD_LIBRARY: unable to load auxiliary library +0xB9120012 +E_HSD_MUTEX_CREATE: unable to create mutex +0xB9120013 +E_HSD_MUTEX_LOCK: unable to lock mutex +0xB9120014 +E_HSD_MUTEX_UNLOCK: unable to unlock mutex +0xB9120015 +E_HSD_MUTEX_LOCK_TIMEOUT: timeout while trying to lock mutex +0xB9121 +E_HSD_SELECT: select error +0xB9122 +E_HSD_RECV: receive error +0xB9123 +E_HSD_SEND: send error +0xB9124 +E_HSD_CTRL: control module +0xB9124001 +E_HSD_CTRL_WRONG_SFC: wrong subfunction code +0xB9124002 +E_HSD_CTRL_BADCMD: bad control command +0xB9124003 +E_HSD_CTRL_AUTH: authentication failed +0xB9124004 +E_HSD_CTRL_CS2_BAD_ANSW: bad CryptoServer answer +0xB9125 +E_HSD_INIT: init failed +0xB915 +E_DSPA: dsp_admin3 - DSP Daemon on CSLAN +0xB9150001 +E_DSPA_PARAM: wrong parameter or parameter usage +0xB9150002 +E_DSPA_TIME_CONV: some of the manyfold time conversions failed (w/o userinteraction) +0xB9150003 +E_DSPA_TIME_CONV_USER: some of the manyfold time conversions failed (w/ userinteraction) +0xB9150004 +E_DSPA_BUFFERSIZE: some provided buffer was too small +0xB9150042 +E_DSPA_INTERNAL_PARSE: some data struct could not be parsed internally +0xB91501 +E_DSPA_CS: CryptoServer Administration section +0xB9150101 +E_DSPA_CS_NO_ALARM: No Alarm prevailing +0xB9150102 +E_DSPA_CS_FNA_FIPS: Function not available in FIPS mode +0xB91502 +E_DSPA_LAN: CSLAN Administration section +0xB91503 +E_DSPA_LAN_UPDATE: CSLAN Administration - Update +0xB9150300 +E_DSPA_LAN_UPDATE_BASE: CSLAN Administration - Update - calcbase +0xB9150301 +E_DSPA_LAN_UPDATE_NOTGZ: Extraction of archive failed +0xB9150302 +E_DSPA_LAN_UPDATE_NOLANAR: Not a CSLAN OS archive file. +0xB9150303 +E_DSPA_LAN_UPDATE_NOINDI: Did not find expected indicator in archive. +0xB9150304 +E_DSPA_LAN_UPDATE_NOTARGPAR: Wrong/missing argument +0xB9150305 +E_DSPA_LAN_UPDATE_CANTMOUNT: Can't mount user1/user2 +0xB9150306 +E_DSPA_LAN_UPDATE_CANTTOUCH: Could not touch INIT-COPY-CONFIG ActionFile +0xB9150307 +E_DSPA_LAN_UPDATE_POSTUPSCR: Post update script returned error +0xB915037F +E_DSPA_LAN_UPDATE_SHNOTEXEC: sh could not be executed +0xB91503FF +E_DSPA_LAN_UPDATE_NO_TGZ_O: file was no .tar.gz (old msg) +0xB91504 +E_DSPA_LAN_ACTIONF: CSLAN Administration - ActionFiles +0xB9150400 +E_DSPA_LAN_ACTIONF_BASE: CSLAN Administration - ActionFiles - calcbase +0xB9150401 +E_DSPA_LAN_ACTIONF_COMMAND: Wrong/missing argument +0xB9150402 +E_DSPA_LAN_ACTIONF_ACTIONFLE: Wrong/missing argument +0xB9150403 +E_DSPA_LAN_ACTIONF_PARTITION: Wrong/missing argument +0xB9150404 +E_DSPA_LAN_ACTIONF_PREVAILIN: prevailing actionFile +0xB9150405 +E_DSPA_LAN_ACTIONF_MNTTARGET: can't mount target user1/user2 +0xB915047F +E_DSPA_LAN_ACTIONF_SHNOTEXEC: sh could not be executed +0xB91505 +E_DSPA_LAN_SNMP: CSLAN Administration - SNMP +0xB9150500 +E_DSPA_LAN_SNMP_BASE: CSLAN Administration - SNMP - calcbase +0xB9150501 +E_DSPA_LAN_SNMP_COMMAND: Wrong/missing argument +0xB9150502 +E_DSPA_LAN_SNMP_SYSCSNMPD: Failed to write /etc/sysconfig/snmpd +0xB9150503 +E_DSPA_LAN_SNMP_SYSCTRAPD: Failed to write /etc/sysconfig/trapd +0xB9150504 +E_DSPA_LAN_SNMP_ETCSNMPD: Failed to write /etc/snmp/snmpd.conf +0xB915057F +E_DSPA_LAN_SNMP_SHNOTEXEC: sh could not be executed +0xB91505FF +E_DSPA_LAN_SNMP_FORKFAILED: fork(2) failed +0xB91506 +E_DSPA_LINUXERROR: Error Code from Linux: +0xB916 +E_CTS_API: Host API CTS - Crypto Timestamp +0xB9164001 +E_CTS_API_DEVICE_ENV: Environment variable CRYPTOSERVER not set +0xB9164002 +E_CTS_API_DEVICE_TCP: Environment variable CRYPTOSERVER not configured for TCP +0xB9164003 +E_CTS_API_ARGS: Incorrect function arguments given +0xB9164004 +E_CTS_API_ASN_ENCODE: Error occurred while encoding the timestamp request +0xB9164005 +E_CTS_API_ASN_ENCODE_LEN: Given input buffer is too small to copy encoded data +0xB9164006 +E_CTS_API_RECV: Incorrect data received from TimestampServer +0xB9164007 +E_CTS_API_TS: Error returned from the TimestampServer +0xB9164008 +E_CTS_API_FOPEN: Cannot open file +0xB9164009 +E_CTS_API_PKCS7_INVALID_OBJECT: given data is not pkcs7 encoded +0xB916400A +E_CTS_API_PKCS7_UNSUPPORTED_TYPE: only signed and signedAndEnveloped PKCS7 types supported +0xB916400B +E_CTS_API_PKCS7_MULTIPLE_CERTS: given data contains more than one certificate +0xB916400C +E_CTS_API_PKCS7_NO_CERTS: given data contains no certificate +0xB916400D +E_CTS_API_X509_NO_CERT: given data contains no plain certificate +0xB916400E +E_CTS_API_INVALID_TS_STRUCT: Given TimeStamp structure is not a valid ASN.1 format +0xB916400F +E_CTS_API_HASH_ALGO: Unsupported hash algorithm +0xB9164010 +E_CTS_API_INVALID_HASH: Calculated hash value does not match with the hash value contained in the TimeStamp +0xB9164011 +E_CTS_API_OUT_OVL: given memory buffer too small or invalid length returned from the CSLAN +0xB9164012 +E_CTS_API_MALLOC: can't allocate memory +0xB9164013 +E_CTS_API_PKCS7_RW: Error while reading/writing PKCS7 data +0xB9164014 +E_CTS_API_ASN_NO_TS: Given timestamp contains no timestamp token (maybe error in request?) +0xB9164015 +E_CTS_API_HASH_LENGTH: invalid hash length +0xB9164016 +E_CTS_API_HTTP_BAD_RESP: invalid http response +0xB9164100 +E_CTS_API_TCP_INIT: tcp: init error +0xB9164101 +E_CTS_API_TCP_ADDR: tcp: incorrect IP address +0xB9164102 +E_CTS_API_TCP_HOSTNAME: tcp: incorrect hostname +0xB9164103 +E_CTS_API_TCP_PORT: tcp: incorrect port number +0xB9164104 +E_CTS_API_TCP_TIMEOUT: tcp: connection timeout +0xB9164105 +E_CTS_API_TCP_CLOSED: tcp: connection closed by remote host +0xB91642 +E_CTS_API_TCP_SOCKET: tcp: can't create socket +0xB91643 +E_CTS_API_TCP_CONNECT: tcp: can't get connection +0xB91644 +E_CTS_API_TCP_RECV: tcp: recv error +0xB91645 +E_CTS_API_TCP_SEND: tcp: send error +0xB91646 +E_CTS_API_TCP_SELECT: tcp: select error +0xB9164800 +E_CTS_API_HTTP: HTTP error +0xB9164990 +E_CTS_API_HTTP_BAD_REQUEST: HTTP error 400: Bad Request +0xB9164993 +E_CTS_API_HTTP_FORBIDDEN: HTTP error 403: Forbidden +0xB9164994 +E_CTS_API_HTTP_NOT_FOUND: HTTP error 404: Not Found +0xB9164995 +E_CTS_API_HTTP_METHOD_NOT_ALLOWED: HTTP error 405: Method not allowed +0xB91649F4 +E_CTS_API_HTTP_SERVER_ERROR: HTTP error 500: Server error +0xB91649F7 +E_CTS_API_HTTP_SERVICE_UNAVAIL: HTTP error 503: Service unavailable +0xB917 +E_CSPD: CryptoServer Protocol Daemon +0xB9170001 +E_CSPD_MALLOC: memory allocation error +0xB9170002 +E_CSPD_PARAM: invalid parameter +0xB9170003 +E_CSPD_BAD_CONFIG: bad configuration +0xB9170004 +E_CSPD_NO_DEVICE: can't open any device +0xB9170005 +E_CSPD_TIMEOUT: timeout +0xB9170006 +E_CSPD_TERM: connection was terminated +0xB9170007 +E_CSPD_INVALID_DATA_LEN: invalid command data length +0xB9170008 +E_CSPD_PROTOCOL: protocol error +0xB9170009 +E_CSPD_MAX_CONNECTIONS: maximum number of connections reached +0xB917000A +E_CSPD_FILE_OPEN: can't open file +0xB917000B +E_CSPD_BUF_SIZE: buffer size too small +0xB917001 +E_CSPD_MUTEX: mutex section +0xB9170012 +E_CSPD_MUTEX_CREATE: unable to create mutex +0xB9170013 +E_CSPD_MUTEX_DELETE: timeout while trying to lock mutex +0xB9170014 +E_CSPD_MUTEX_LOCK: unable to lock mutex +0xB9170015 +E_CSPD_MUTEX_LOCK_TIMEOUT: atempt to lock mutex timed out +0xB9170016 +E_CSPD_MUTEX_UNLOCK: unable to unlock mutex +0xB917002 +E_CSPD_CTRL: control module +0xB9170021 +E_CSPD_CTRL_WRONG_SFC: wrong subfunction code +0xB9170022 +E_CSPD_CTRL_BAD_CMD: bad control command +0xB9170023 +E_CSPD_CTRL_AUTH: authentication failed +0xB9170024 +E_CSPD_CTRL_BAD_ANSW: bad CryptoServer answer +0xB9170025 +E_CSPD_CTRL_PARAM: invalid parameter +0xB9171 +E_CSPD_TCP: TCP error +0xB9172 +E_CSPD_SYS: system error +0xB918 +E_PPD: CryptoServer Protocol Daemon +0xB9180001 +E_PPD_MALLOC: memory allocation error +0xB9180002 +E_PPD_PARAM: invalid parameter +0xB9180003 +E_PPD_BAD_CONFIG: bad configuration +0xB9180004 +E_PPD_NO_DEVICE: can't open any device +0xB9180005 +E_PPD_TIMEOUT: timeout +0xB9180006 +E_PPD_TERM: connection was terminated +0xB9180007 +E_PPD_INVALID_DATA_LEN: invalid command data length +0xB9180008 +E_PPD_PROTOCOL: protocol error +0xB9180009 +E_PPD_MAX_CONNECTIONS: maximum number of connections reached +0xB918000A +E_PPD_FILE_OPEN: can't open file +0xB918000B +E_PPD_BUF_SIZE: buffer size too small +0xB918000C +E_PPD_AUTH_FAILED: authentication failed +0xB9180010 +E_PPD_CMD_LEN: invalid command length +0xB9180011 +E_PPD_CMD_FC: invalid function code +0xB9180012 +E_PPD_CMD_SFC: invalid sub-function code +0xB918002 +E_PPD_MUTEX: mutex section +0xB9180022 +E_PPD_MUTEX_CREATE: unable to create mutex +0xB9180023 +E_PPD_MUTEX_DELETE: timeout while trying to lock mutex +0xB9180024 +E_PPD_MUTEX_LOCK: unable to lock mutex +0xB9180025 +E_PPD_MUTEX_LOCK_TIMEOUT: atempt to lock mutex timed out +0xB9180026 +E_PPD_MUTEX_UNLOCK: unable to unlock mutex +0xB9181 +E_PPD_TCP: TCP error +0xB9182 +E_PPD_SYS: system error +0xB91C +E_P11_API: CryptoServer PKCS11 API +0xB91C0000 +E_P11_CMD_SIZE: CryptoServer command size exceeded +0xB91C0001 +E_P11_AUTH_METHOD: Unknown authentication method +0xB91C0002 +E_P11_AUTH_CREDENTIALS: Invalid authentication credentials +0xB91C0003 +E_P11_HASH_ALGO: Unknown hash algorithm +0xB91C0004 +E_P11_ANSW: Malformed answer of CryptoServer +0xB91C0005 +E_P11_LOGIN_STRING_COUNT: Number of login strings < 2 +0xB91C0006 +E_P11_LOGIN_STRING: Login string too long +0xB91C0007 +E_P11_LOGIN_STRING_INVALID: Invalid login string +0xB91C0008 +E_P11_HANDLE_LOST: CryptoServer handle lost +0xB91D +E_PPA: PIN pad API +0xB91D0001 +E_PPA_ALLOC: memory allocation failed +0xB91D0002 +E_PPA_TYPE: invalid PIN pad type +0xB91D0003 +E_PPA_NO_DEVICE: no device found +0xB91D0004 +E_PPA_BAD_DEV_NAME: bad device name +0xB91D0005 +E_PPA_TOOMANY: too may open connections +0xB91D0006 +E_PPA_BAD_HANDLE: bad handle +0xB91D0007 +E_PPA_PARAM: invalid parameter +0xB91D0008 +E_PPA_NOT_SUPPORTED: requested feature is not supported +0xB91D0009 +E_PPA_NOT_OPEN: connection is not open +0xB91D000A +E_PPA_TIMEOUT: timeout occurred +0xB91D000B +E_PPA_ABORT: action canceled +0xB91D000C +E_PPA_DATA_LEN: invalid data length +0xB91D000D +E_PPA_PIN_REPETITION: bad PIN repetition +0xB91D000E +E_PPA_BUF_SIZE: invalid buffer size +0xB91D000F +E_PPA_PROTOCOL: protocol error +0xB91D0010 +E_PPA_ICC_STATE: bad ICC state +0xB91D0011 +E_PPA_ICC_DATA_LEN: bad data length returned from ICC +0xB91D0012 +E_PPA_ICC_BAD_RESPONSE: bad response recieved from ICC +0xB91D0013 +E_PPA_ICC_NO_CARD: no smartcard inserted +0xB91D0020 +E_PPA_USB_DRIVER: USB driver is not running +0xB91D0021 +E_PPA_USB_OPEN: USB open failed +0xB91D0022 +E_PPA_USB_WRITE: USB write failed +0xB91D0023 +E_PPA_USB_READ: USB read failed +0xB91D0024 +E_PPA_USB_NOT_AVAIL: USB is not available +0xB91D0030 +E_PPA_BAD_INPUT: bad input +0xB91D0031 +E_PPA_ACCESS_DENIED: access denied +0xB91D0032 +E_PPA_CONNECT: no reader connected +0xB91D0041 +E_PPA_JCOP_TIMEOUT: JCOP simulator send/receive timeout +0xB91D0044 +E_PPA_JCOP_OTHER: JCOP simulator unknown error +0xB91D1 +E_PPA_PCSC: PC/SC +0xB91D2 +E_PPA_MKT: MKT +0xB91D3 +E_PPA_CP8: CP8 +0xB91D4 +E_PPA_ACR80: ACR80 +0xB91D5 +E_PPA_LIBUSB: USB +0xB91D6 +E_PPA_CCID: CCID +0xB91D7 +E_PPA_CYBERJACK: cyberJack +0xB91D8 +E_PPA_JCOP: JCOP +0xB91E +E_COPA: copa Config Parser +0xB91E0000 +E_COPA_FILE: Cant open/access configuration file +0xB91E0100 +E_COPA_LINE_TO_LONG: line from input file to long +0xB91E0101 +E_COPA_NO_MATCHING_BRACKET: No matching ] found +0xB91E0102 +E_COPA_NO_EQUAL_FOUND: No = after variable found +0xB91E0103 +E_COPA_NO_VALUE_FOR_VAL_FOUND: No value for variable after = found +0xB91E0104 +E_COPA_NO_MATCHING_QUOTE: No Matching \" or' found +0xB91E0105 +E_COPA_INVALID_HEXNUMBER: No valid Hex Number after $ +0xB91E0106 +E_COPA_NO_TWO_BYTE_HEXNUMBER: not all hex codes are two byte +0xB91E0107 +E_COPA_NO_VALUES_IN_LIST: No Value in List found +0xB91E0108 +E_COPA_SECOND_CHAR_NO_HEX: second char after $ is no valid hex value +0xB91E0109 +E_COPA_LIST_NOT_IN_FILE: One of the list elements it not in the config file +0xB91E0110 +E_COPA_FILE_NOT_IN_LIST: One of the config file elements it not in the list +0xB91E0111 +E_COPA_VALUE_NOT_BOOL: Value is not a Boolean value +0xB91E0112 +E_COPA_INVALID_INTEGER: Value is not an Integer number +0xB91E0113 +E_COPA_NON_PRINTABLE_CHAR: Char in String is non printable +0xB91E0114 +E_COPA_LONG_DOESNT_FIT_IN_INT: strol returns long, the result does not fit in int +0xB91E0115 +E_COPA_OUT_OF_RANGE: strol returns variable is out of range +0xB920 +E_CXI_API: CryptoServer Core API Cxi +0xB9200001 +E_CXI_API_ALLOC: memory allocation failed +0xB9200002 +E_CXI_API_PARAM: invalid parameter +0xB9200003 +E_CXI_API_PARAM_LEN: invalid parameter length +0xB9200004 +E_CXI_API_PARAM_RANGE: parameter out of range +0xB9200005 +E_CXI_API_BUF_SIZE: buffer size too small +0xB9200006 +E_CXI_API_ANSW_LEN: invalid answer length +0xB9200007 +E_CXI_API_ANSW_DATA: invalid format of answer data +0xB9200008 +E_CXI_API_STRING_TERM: unterminated string +0xB9200009 +E_CXI_API_STRING_CONV: string conversion failed +0xB920000A +E_CXI_API_NOT_FOUND: object/item not found +0xB920000B +E_CXI_API_COMPARE: compare failed +0xB920000C +E_CXI_API_ALGO: invalid algorithm +0xB920000D +E_CXI_API_STATE: invalid state +0xB920000E +E_CXI_API_FILE: file error +0xB920000F +E_CXI_API_USER_NOT_FOUND: user does not exist +0xB9200010 +E_CXI_API_NOT_SUPPORTED: operation not supported +0xB9200011 +E_CXI_API_INVALID_KEY: invalid key +0xB9200012 +E_CXI_API_IO: I/O error +0xB9200013 +E_CXI_API_LOG: log access error +0xB9200014 +E_CXI_API_DB: database access error +0xB9200015 +E_CXI_API_ASN1_FORMAT: invalid ASN.1 format +0xB9200016 +E_CXI_API_MEM_CORR: memory corruption +0xB9200017 +E_CXI_API_MECHS_LENGTH: invalid number of mechs +0xB9201 +E_CXI_API_SYSTEM: system error +0xB921 +E_OSTESTTOOL: OS test tool +0xB9210001 +E_OSTESTTOOL_MALLOC: memory allocation failed +0xB9210002 +E_OSTESTTOOL_INVALID_PARAM: invalid parameter +0xB9210003 +E_OSTESTTOOL_ANSW_LEN: invalid length of answer data +0xB9210004 +E_OSTESTTOOL_ERROR_EXPECTED: actual error doesn't match expected error +0xB9210005 +E_OSTESTTOOL_DATA_COMPARE: data compare error +0xB9210006 +E_OSTESTTOOL_FILE: file error +0xB9210007 +E_OSTESTTOOL_RANGE: value exceeds expected range +0xB980 +E_JCSA: java CryptoServer API +0xB9800001 +E_JCSA_TERM: Connection terminated by remote host +0xB9800002 +E_JCSA_BLK_LEN: Bad block length received +0xB9800003 +E_JCSA_BAD_ANSW: Bad answer length +0xB9800004 +E_JCSA_BAD_TAG: Bad tag of answer block +0xB9800005 +E_JCSA_AUTH_MAX: Too many authentications +0xB9800006 +E_JCSA_PWD_LEN: Bad length of password +0xB9800007 +E_JCSA_TRANS_NAME: Can't translate user name +0xB9800008 +E_JCSA_JCE_ALGO: Hash algo not available +0xB9800009 +E_JCSA_GET_CH: Could not get challenge +0xB980000A +E_JCSA_JCE_PROV: JCE Provider not found +0xB980000B +E_JCSA_JCE_KEY: JCE Key Exception (Jurisdiction files installed?) +0xB980000C +E_JCSA_JCE_EXC: JCE Exception +0xB980000D +E_JCSA_SM_FAIL: Secure Messaging failed +0xB980000E +E_JCSA_SM_MODE: Unknown SM mode +0xB980000F +E_JCSA_SK_DEC: Bad session key decryption +0xB9800010 +E_JCSA_JNI_ERR: JNI Interface Error +0xB9800011 +E_JCSA_BAD_PARA: Bad parameter +0xB9800012 +E_JCSA_NO_AUTH: Missung authentication +0xB9800013 +E_JCSA_CHARSET: Unsupported encoding +0xB9800014 +E_JCSA_DATALEN: Invalid data length +0xB9800015 +E_JCSA_KEY_DECRYPT: Can't decrypt key file +0xB9800016 +E_JCSA_IO: I/O Error +0xB9800017 +E_JCSA_NO_DEV: No device specified +0xB9800018 +E_JCSA_AUTH_MECH: Invalid authentication mechanism +0xB980002 +E_JCSA_CLUSTER: CryptoServer Cluster API +0xB9800021 +E_JCSA_CLUSTER_OPEN: Unable to open any CryptoServer +0xB9800022 +E_JCSA_CLUSTER_LOGON: Unable to logon to any CryptoServer +0xB9800023 +E_JCSA_CLUSTER_EXEC: Unable to execute command on any CryptoServer +0xB98001 +E_JCSA_KEY: RSA Key class +0xB9800101 +E_JCSA_KEY_BAD_FILE: Malformed RSA Key file +0xB9800102 +E_JCSA_KEY_DEC: Decryption failed +0xB98002 +E_JCSA_SMC: CryptoServer Smartcard API +0xB9800200 +E_JCSA_SMC_STATUS: Smartcard returned error status +0xB9800201 +E_JCSA_SMC_PADDING: bad padding +0xB9800202 +E_JCSA_SMC_SPEC: invalid specifier +0xB98003 +E_JCSA_DB: CryptoServer Database API +0xB9800300 +E_JCSA_DB_JNI_ERR: JNI Interface Error +0xB981 +E_JCXI: Java CryptoServer API CXI +0xB9810000 +E_JCXI_PARAM: invalid parameter +0xB9810001 +E_JCXI_BAD_NAME: bad key name +0xB9810002 +E_JCXI_NAME_REQ: key name required for internal storage +0xB9810003 +E_JCXI_CHARSET: internal charset converting error +0xB9810004 +E_JCXI_BAD_KTOK: bad key token +0xB9810005 +E_JCXI_BAD_ANSW: malformed answer block of CryptoServer +0xB9810006 +E_JCXI_KEY_ATTR: bad key attributes from CryptoServer +0xB9810007 +E_JCXI_BAD_ALGO: bad algorithm +0xB9810008 +E_JCXI_USER_NAME: bad user name +0xB9810009 +E_JCXI_NO_DEVICE: missing device entry +0xB981000A +E_JCXI_NO_KEY_COMP: key component not found +0xB981000B +E_JCXI_NO_KEY: key not found +0xB981000C +E_JCXI_CSA_VERSION: version of CryptoServerAPI too small +0xB981000D +E_JCXI_NO_EC_PARAM: no EC parameter data available +0xB981000E +E_JCXI_NO_IV_OUT: no output IV available +0xB981000F +E_JCXI_FW_VER: firmware version too small +0xB9810010 +E_JCXI_ASN1_DECODE: ASN.1 decoding error +0xB9810011 +E_JCXI_AES_DECRYPT: JCE AES decrypt error +0xB9810020 +E_JCXI_ECC_PARAM: bad ECC parameter +0xB9810030 +E_JCXI_CONFIG: config item missing +0xB9810040 +E_JCXI_DATA_LENGTH: invalid data length +0xB9810050 +E_JCXI_MECHS_LENGTH: invalid number of mechs +0xB982 +E_JSDB: Database API Java +0xB9820000 +E_JSDB_JNI_ERR: JNI Interface Error +0xB983 +E_JPPA: PinPad API Java +0xB9830000 +E_JPPA_JNI_ERR: JNI Interface Error +0xB9830001 +E_JPPA_SPEC: invalid specifier +0xB984 +E_JCE: JCA/JCE provider +0xB9840002 +E_JCE_MISSING_KEYSTOREPATH: KeyStorePath +0xB985 +E_CSAN: CryptoServerAPI.NET +0xB9850001 +E_CSAN_PARAM: Invalid parameter +0xB9850002 +E_CSAN_AUTH_MECH: Invalid authentication mechanism +0xB985002 +E_CSAN_CLUSTER: CryptoServer Cluster API +0xB9850021 +E_CSAN_CLUSTER_OPEN: Unable to open any CryptoServer +0xB9850022 +E_CSAN_CLUSTER_LOGON: Unable to logon to any CryptoServer +0xB9850023 +E_CSAN_CLUSTER_EXEC: Unable to execute command on any CryptoServer +0xB986 +E_CXIN: CryptoServer API CXI.NET +0xB9860000 +E_CXIN_PARAM: invalid parameter +0xB9860001 +E_CXIN_MALLOC: memory allocation failed +0xB9860002 +E_CXIN_STATE: invalid state +0xB9860005 +E_CXIN_BAD_ANSW: malformed answer block of CryptoServer +0xB986000B +E_CXIN_NO_KEY: key not found +0xB986000E +E_CXIN_NO_IV_OUT: no output IV available +0xB9860030 +E_CXIN_CONFIG: config item missing diff --git a/node/src/test/kotlin/net/corda/node/hsm/HsmSimulator.kt b/node/src/test/kotlin/net/corda/node/hsm/HsmSimulator.kt new file mode 100644 index 0000000000..a26bd68a3e --- /dev/null +++ b/node/src/test/kotlin/net/corda/node/hsm/HsmSimulator.kt @@ -0,0 +1,213 @@ +package net.corda.node.hsm + +import CryptoServerAPI.CryptoServerException +import CryptoServerJCE.CryptoServerProvider +import com.spotify.docker.client.DefaultDockerClient +import com.spotify.docker.client.DockerClient +import com.spotify.docker.client.messages.ContainerConfig +import com.spotify.docker.client.messages.HostConfig +import com.spotify.docker.client.messages.PortBinding +import com.spotify.docker.client.messages.RegistryAuth +import net.corda.core.utilities.loggerFor +import net.corda.testing.driver.PortAllocation +import org.junit.Assume.assumeFalse +import org.junit.rules.ExternalResource +import java.io.ByteArrayOutputStream +import kotlin.reflect.full.memberProperties + +data class CryptoUserCredentials(val username: String, val password: String) + +/** + * HSM Simulator rule allowing to use the HSM Simulator within the integration tests. It is designed to be used mainly + * on the TeamCity, but if the required setup is available it can be executed locally as well. + * It will bind to the simulator to the local port + * ToDocker engine needs to be installed on the machine + * 2) Environment variables (AZURE_CR_USER and AZURE_CR_PASS) are available and hold valid credentials to the corda.azurecr.io + * repository + * 3) HSM requires Unlimited Strength Jurisdiction extension to be installed on the machine connecting with the HSM box. + * See http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html + * use it locally, the following pre-requisites need to be met: + * 1) + * Since the above setup is not a strong requirement for the integration tests to be executed it is intended that this + * rule is used together with the assumption mechanism in tests. + */ +class HsmSimulator(private val serverAddress: String = DEFAULT_SERVER_ADDRESS, + private val imageRepoTag: String = DEFAULT_IMAGE_REPO_TAG, + private val imageVersion: String = DEFAULT_IMAGE_VERSION, + private val pullImage: Boolean = DEFAULT_PULL_IMAGE, + private val registryUser: String? = REGISTRY_USERNAME, + private val registryPass: String? = REGISTRY_PASSWORD) : ExternalResource() { + + private companion object { + val DEFAULT_SERVER_ADDRESS = "corda.azurecr.io" + /* + * Currently we have following images: + * 1) corda.azurecr.io/network-management/hsm-simulator - having only one user configured: + * - INTEGRATION_TEST (password: INTEGRATION_TEST) with the CXI_GROUP="*" + * 2)corda.azurecr.io/network-management/hsm-simulator-with-groups - having following users configured: + * - INTEGRATION_TEST (password: INTEGRATION_TEST) with the CXI_GROUP=* + * - INTEGRATION_TEST_SUPER (password: INTEGRATION_TEST) with the CXI_GROUP=TEST.CORDACONNECT + * - INTEGRATION_TEST_ROOT (password: INTEGRATION_TEST) with the CXI_GROUP=TEST.CORDACONNECT.ROOT + * - INTEGRATION_TEST_OPS (password: INTEGRATION_TEST) with the CXI_GROUP=TEST.CORDACONNECT.OPS + * - INTEGRATION_TEST_SUPER_ (password: INTEGRATION_TEST) with the CXI_GROUP=TEST.CORDACONNECT.* + * - INTEGRATION_TEST_ROOT_ (password: INTEGRATION_TEST) with the CXI_GROUP=TEST.CORDACONNECT.ROOT.* + * - INTEGRATION_TEST_OPS_ (password: INTEGRATION_TEST) with the CXI_GROUP=TEST.CORDACONNECT.OPS.* + * - INTEGRATION_TEST_OPS_CERT (password: INTEGRATION_TEST) with the CXI_GROUP=TEST.CORDACONNECT.OPS.CERT + * - INTEGRATION_TEST_OPS_NETMAP (password: INTEGRATION_TEST) with the CXI_GROUP=TEST.CORDACONNECT.OPS.NETMAP + * - INTEGRATION_TEST_OPS_CERT (password: INTEGRATION_TEST) with the CXI_GROUP=TEST.CORDACONNECT.OPS.CERT.* + * - INTEGRATION_TEST_OPS_NETMAP (password: INTEGRATION_TEST) with the CXI_GROUP=TEST.CORDACONNECT.OPS.NETMAP.* + */ + val DEFAULT_IMAGE_REPO_TAG = "corda.azurecr.io/network-management/hsm-simulator-with-groups" + val DEFAULT_IMAGE_VERSION = "latest" + val DEFAULT_PULL_IMAGE = true + + val HSM_SIMULATOR_PORT = "3001/tcp" + val CONTAINER_KILL_TIMEOUT_SECONDS = 10 + + val CRYPTO_USER = System.getProperty("CRYPTO_USER", "INTEGRATION_TEST") + val CRYPTO_PASSWORD = System.getProperty("CRYPTO_PASSWORD", "INTEGRATION_TEST") + + val REGISTRY_USERNAME = System.getenv("AZURE_CR_USER") + val REGISTRY_PASSWORD = System.getenv("AZURE_CR_PASS") + + val log = loggerFor() + + private val HSM_STARTUP_SLEEP_INTERVAL_MS = 500L + private val HSM_STARTUP_POLL_MAX_COUNT = 10; + } + + private val localHostAndPortBinding = PortAllocation.Incremental(10000).nextHostAndPort() + private lateinit var docker: DockerClient + private var containerId: String? = null + + override fun before() { + assumeFalse("Docker registry username is not set!. Skipping the test.", registryUser.isNullOrBlank()) + assumeFalse("Docker registry password is not set!. Skipping the test.", registryPass.isNullOrBlank()) + docker = DefaultDockerClient.fromEnv().build() + if (pullImage) { + docker.pullHsmSimulatorImageFromRepository() + } + containerId = docker.createContainer() + docker.startHsmSimulatorContainer() + } + + override fun after() { + docker.stopAndRemoveHsmSimulatorContainer() + } + + /** + * Retrieves the port at which simulator is listening at. + */ + val port get(): Int = localHostAndPortBinding.port + + /** + * Retrieves the host IP address, which the simulator is listening at. + */ + val host get(): String = localHostAndPortBinding.host + + /** + * Retrieves the HSM user credentials. Those are supposed to be preconfigured on the HSM itself. Thus, when + * tests are executed these credentials can be used to access HSM crypto user's functionality. + * It is assumed that the docker image state has those configured already and they should match the ones returned. + */ + fun cryptoUserCredentials(): CryptoUserCredentials { + return CryptoUserCredentials(CRYPTO_USER, CRYPTO_PASSWORD) + } + + private fun DockerClient.stopAndRemoveHsmSimulatorContainer() { + if (containerId != null) { + log.debug("Stopping container $containerId...") + this.stopContainer(containerId, CONTAINER_KILL_TIMEOUT_SECONDS) + log.debug("Removing container $containerId...") + this.removeContainer(containerId) + } + } + + private fun DockerClient.startHsmSimulatorContainer() { + if (containerId != null) { + log.debug("Starting container $containerId...") + this.startContainer(containerId) + pollAndWaitForHsmSimulator() + } + } + + private fun pollAndWaitForHsmSimulator() { + val config = CryptoServerProviderConfig( + Device = "${localHostAndPortBinding.port}@${localHostAndPortBinding.host}", + KeyGroup = "*", + KeySpecifier = -1 + ) + var pollCount = HSM_STARTUP_POLL_MAX_COUNT + while (pollCount > 0) { + val provider = createProvider(config) + try { + provider.loginPassword(CRYPTO_USER, CRYPTO_PASSWORD) + provider.cryptoServer.authState + return + } catch (e: CryptoServerException) { + pollCount-- + Thread.sleep(HSM_STARTUP_SLEEP_INTERVAL_MS) + } finally { + provider.logoff() + } + } + throw IllegalStateException("Unable to obtain connection to initialised HSM Simulator") + } + + private fun getImageFullName() = "$imageRepoTag:$imageVersion" + + private fun DockerClient.pullHsmSimulatorImageFromRepository(): DockerClient { + this.pull(imageRepoTag, + RegistryAuth.builder() + .serverAddress(serverAddress) + .username(registryUser) + .password(registryPass) + .build()) + return this + } + + private fun DockerClient.createContainer(): String? { + val portBindings = mapOf(HSM_SIMULATOR_PORT to listOf(PortBinding.create(localHostAndPortBinding.host, localHostAndPortBinding.port.toString()))) + val hostConfig = HostConfig.builder().portBindings(portBindings).build() + val containerConfig = ContainerConfig.builder() + .hostConfig(hostConfig) + .portSpecs() + .image(getImageFullName()) + .exposedPorts(HSM_SIMULATOR_PORT) + .build() + val containerCreation = this.createContainer(containerConfig) + return containerCreation.id() + } + + /* + * Configuration class for [CryptoServerProvider] + */ + data class CryptoServerProviderConfig( + val Device: String = "3001@127.0.0.1", + val ConnectionTimeout: Int = 30000, + val Timeout: Int = 60000, + val EndSessionOnShutdown: Int = 1, + val KeepSessionAlive: Int = 0, + val KeyGroup: String = "*", + val KeySpecifier: Int = -1, + val StoreKeysExternal: Boolean = false + ) + + /** + * Creates an instance of [CryptoServerProvider] configured accordingly to the passed configuration. + * + * @param config crypto server provider configuration. + * + * @return preconfigured instance of [CryptoServerProvider] + */ + private fun createProvider(config: CryptoServerProviderConfig): CryptoServerProvider { + val cfgBuffer = ByteArrayOutputStream() + val writer = cfgBuffer.writer(Charsets.UTF_8) + for (property in CryptoServerProviderConfig::class.memberProperties) { + writer.write("${property.name} = ${property.get(config)}\n") + } + writer.close() + val cfg = cfgBuffer.toByteArray().inputStream() + return CryptoServerProvider(cfg) + } +} \ No newline at end of file diff --git a/node/src/test/kotlin/net/corda/node/services/config/NodeConfigurationImplTest.kt b/node/src/test/kotlin/net/corda/node/services/config/NodeConfigurationImplTest.kt index e87b2e2592..e19bbcb068 100644 --- a/node/src/test/kotlin/net/corda/node/services/config/NodeConfigurationImplTest.kt +++ b/node/src/test/kotlin/net/corda/node/services/config/NodeConfigurationImplTest.kt @@ -19,6 +19,7 @@ import org.assertj.core.api.Assertions.assertThatThrownBy import org.junit.Assert.assertEquals import org.junit.Assert.assertNotNull import org.junit.Test +import java.io.File import java.net.InetAddress import java.net.URI import java.net.URL @@ -223,7 +224,7 @@ class NodeConfigurationImplTest { @Test fun `validation has error on non-null cryptoServiceConf for null cryptoServiceName`() { - val configuration = testConfiguration.copy(cryptoServiceConf = "unsupported.conf") + val configuration = testConfiguration.copy(cryptoServiceConf = File("unsupported.conf").toPath()) val errors = configuration.validate() diff --git a/node/src/test/kotlin/net/corda/node/services/keys/cryptoservice/utimaco/UtimacoCryptoServiceTest.kt b/node/src/test/kotlin/net/corda/node/services/keys/cryptoservice/utimaco/UtimacoCryptoServiceTest.kt new file mode 100644 index 0000000000..488c4bee10 --- /dev/null +++ b/node/src/test/kotlin/net/corda/node/services/keys/cryptoservice/utimaco/UtimacoCryptoServiceTest.kt @@ -0,0 +1,23 @@ +package net.corda.node.services.keys.cryptoservice.utimaco + +import net.corda.core.internal.toPath +import net.corda.node.services.keys.cryptoservice.utimaco.UtimacoCryptoService.Companion.fileBasedAuth +import net.corda.node.services.keys.cryptoservice.utimaco.UtimacoCryptoService.Companion.parseConfigFile +import org.junit.Test +import kotlin.test.assertEquals + +class UtimacoCryptoServiceTest { + + @Test + fun `Parse config file`() { + val config = parseConfigFile(javaClass.getResource("utimaco_config.yml").toPath()) + assertEquals(true, config.provider.keepSessionAlive) + } + @Test + fun `File based auth`() { + val auth = fileBasedAuth(javaClass.getResource("uname").toPath(), javaClass.getResource("pw").toPath()) + val credentials = auth() + assertEquals("testpassword", String(credentials.password)) + assertEquals("testuser", credentials.username) + } +} \ No newline at end of file diff --git a/node/src/test/resources/net/corda/node/services/keys/cryptoservice/utimaco/pw b/node/src/test/resources/net/corda/node/services/keys/cryptoservice/utimaco/pw new file mode 100644 index 0000000000..1d616f95e2 --- /dev/null +++ b/node/src/test/resources/net/corda/node/services/keys/cryptoservice/utimaco/pw @@ -0,0 +1 @@ +dGVzdHBhc3N3b3Jk diff --git a/node/src/test/resources/net/corda/node/services/keys/cryptoservice/utimaco/uname b/node/src/test/resources/net/corda/node/services/keys/cryptoservice/utimaco/uname new file mode 100644 index 0000000000..5c8c502874 --- /dev/null +++ b/node/src/test/resources/net/corda/node/services/keys/cryptoservice/utimaco/uname @@ -0,0 +1 @@ +dGVzdHVzZXI= diff --git a/node/src/test/resources/net/corda/node/services/keys/cryptoservice/utimaco/utimaco_config.yml b/node/src/test/resources/net/corda/node/services/keys/cryptoservice/utimaco/utimaco_config.yml new file mode 100644 index 0000000000..2232e37848 --- /dev/null +++ b/node/src/test/resources/net/corda/node/services/keys/cryptoservice/utimaco/utimaco_config.yml @@ -0,0 +1,20 @@ +provider = { + host = "127.0.0.1" + port = 3001 + connectionTimeout = 60000 + endSessionOnShutdown = false + keepSessionAlive = true + keyGroup = "*" + keySpecifier = 2 + storeKeysExternal = false +} +keyGeneration = { + keyOverride = false + keyExport = false + keyGenMechanism = 4 +} +authThreshold = 1 +authentication = { + username = foo + password = bar +} \ No newline at end of file diff --git a/testing/node-driver/src/main/kotlin/net/corda/testing/node/internal/DriverDSLImpl.kt b/testing/node-driver/src/main/kotlin/net/corda/testing/node/internal/DriverDSLImpl.kt index 98521932f9..87c36dd2a6 100644 --- a/testing/node-driver/src/main/kotlin/net/corda/testing/node/internal/DriverDSLImpl.kt +++ b/testing/node-driver/src/main/kotlin/net/corda/testing/node/internal/DriverDSLImpl.kt @@ -196,7 +196,7 @@ class DriverDSLImpl( } } - override fun startNode(defaultParameters: NodeParameters, + override fun startNode(defaultParameters: NodeParameters, providedName: CordaX500Name?, rpcUsers: List, verifierType: VerifierType, @@ -262,7 +262,7 @@ class DriverDSLImpl( val registrationFuture = if (compatibilityZone?.rootCert != null) { // We don't need the network map to be available to be able to register the node - startNodeRegistration(name, compatibilityZone.rootCert, compatibilityZone.config()) + startNodeRegistration(name, compatibilityZone.rootCert, compatibilityZone.config(), customOverrides) } else { doneFuture(Unit) } @@ -324,21 +324,23 @@ class DriverDSLImpl( private fun startNodeRegistration( providedName: CordaX500Name, rootCert: X509Certificate, - networkServicesConfig: NetworkServicesConfig + networkServicesConfig: NetworkServicesConfig, + customOverrides: Map = mapOf() ): CordaFuture { val baseDirectory = baseDirectory(providedName).createDirectories() + val overrides = configOf( + "p2pAddress" to portAllocation.nextHostAndPort().toString(), + "compatibilityZoneURL" to networkServicesConfig.doormanURL.toString(), + "myLegalName" to providedName.toString(), + "rpcSettings" to mapOf( + "address" to portAllocation.nextHostAndPort().toString(), + "adminAddress" to portAllocation.nextHostAndPort().toString() + ), + "devMode" to false) + customOverrides val config = NodeConfig(ConfigHelper.loadConfig( baseDirectory = baseDirectory, allowMissingConfig = true, - configOverrides = configOf( - "p2pAddress" to portAllocation.nextHostAndPort().toString(), - "compatibilityZoneURL" to networkServicesConfig.doormanURL.toString(), - "myLegalName" to providedName.toString(), - "rpcSettings" to mapOf( - "address" to portAllocation.nextHostAndPort().toString(), - "adminAddress" to portAllocation.nextHostAndPort().toString() - ), - "devMode" to false) + configOverrides = overrides )).checkAndOverrideForInMemoryDB() val versionInfo = VersionInfo(PLATFORM_VERSION, "1", "1", "1")