openapi: 3.0.3 info: title: CISD TMS Crypto Card Internal API (Full) version: 1.1.0 description: | 覆盖 CryptoCardController 与扩展密码卡接口的全部能力。 servers: - url: http://localhost:8080 description: Local tags: - name: CryptoAll description: 密码卡全量接口 security: - InternalTokenAuth: [] paths: /api/v1/device/crypto/agreement/data-key/ecc: post: tags: [CryptoAll] summary: generateAgreementDataAndKeyEcc operationId: generateAgreementDataAndKeyEcc requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CryptoGenerateAgreementDataAndKeyEccInternalRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ApiResponseAny' '400': $ref: '#/components/responses/BadRequest' '500': $ref: '#/components/responses/InternalError' /api/v1/device/crypto/agreement/session-key/ecc: post: tags: [CryptoAll] summary: generateSessionKeyEcc operationId: generateSessionKeyEcc requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CryptoGenerateSessionKeyEccInternalRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ApiResponseAny' '400': $ref: '#/components/responses/BadRequest' '500': $ref: '#/components/responses/InternalError' /api/v1/device/crypto/decrypt/kek: post: tags: [CryptoAll] summary: decryptKek operationId: decryptKek requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CryptoSymmetricKekInternalRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ApiResponseAny' '400': $ref: '#/components/responses/BadRequest' '500': $ref: '#/components/responses/InternalError' /api/v1/device/crypto/decrypt/plain: post: tags: [CryptoAll] summary: decryptPlain operationId: decryptPlain requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CryptoSymmetricInternalRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ApiResponseAny' '400': $ref: '#/components/responses/BadRequest' '500': $ref: '#/components/responses/InternalError' /api/v1/device/crypto/device-conf: get: tags: [CryptoAll] summary: getDeviceConf operationId: getDeviceConf responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ApiResponseAny' '400': $ref: '#/components/responses/BadRequest' '500': $ref: '#/components/responses/InternalError' /api/v1/device/crypto/device-count: get: tags: [CryptoAll] summary: getDeviceCount operationId: getDeviceCount responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ApiResponseAny' '400': $ref: '#/components/responses/BadRequest' '500': $ref: '#/components/responses/InternalError' /api/v1/device/crypto/device-info: get: tags: [CryptoAll] summary: getDeviceInfo operationId: getDeviceInfo responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ApiResponseAny' '400': $ref: '#/components/responses/BadRequest' '500': $ref: '#/components/responses/InternalError' /api/v1/device/crypto/digest: post: tags: [CryptoAll] summary: digest operationId: digest requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CryptoDigestInternalRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ApiResponseAny' '400': $ref: '#/components/responses/BadRequest' '500': $ref: '#/components/responses/InternalError' /api/v1/device/crypto/encrypt/kek: post: tags: [CryptoAll] summary: encryptKek operationId: encryptKek requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CryptoSymmetricKekInternalRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ApiResponseAny' '400': $ref: '#/components/responses/BadRequest' '500': $ref: '#/components/responses/InternalError' /api/v1/device/crypto/encrypt/plain: post: tags: [CryptoAll] summary: encryptPlain operationId: encryptPlain requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CryptoSymmetricInternalRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ApiResponseAny' '400': $ref: '#/components/responses/BadRequest' '500': $ref: '#/components/responses/InternalError' /api/v1/device/crypto/envelope/exchange/ecc: post: tags: [CryptoAll] summary: exchangeEnvelopeEcc operationId: exchangeEnvelopeEcc requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CryptoExchangeEnvelopeEccInternalRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ApiResponseAny' '400': $ref: '#/components/responses/BadRequest' '500': $ref: '#/components/responses/InternalError' /api/v1/device/crypto/envelope/exchange/rsa: post: tags: [CryptoAll] summary: exchangeEnvelopeRsa operationId: exchangeEnvelopeRsa requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CryptoExchangeEnvelopeRsaInternalRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ApiResponseAny' '400': $ref: '#/components/responses/BadRequest' '500': $ref: '#/components/responses/InternalError' /api/v1/device/crypto/ext/all-key/backup: post: tags: [CryptoAll] summary: backupAllKey operationId: backupAllKey parameters: - name: outBufferSize in: query required: true schema: type: integer format: int32 responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ApiResponseAny' '400': $ref: '#/components/responses/BadRequest' '500': $ref: '#/components/responses/InternalError' /api/v1/device/crypto/ext/all-key/restore: post: tags: [CryptoAll] summary: restoreAllKey operationId: restoreAllKey requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/Base64DataRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ApiResponseAny' '400': $ref: '#/components/responses/BadRequest' '500': $ref: '#/components/responses/InternalError' /api/v1/device/crypto/ext/device/factory-reset: post: tags: [CryptoAll] summary: factoryReset operationId: factoryReset responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ApiResponseAny' '400': $ref: '#/components/responses/BadRequest' '500': $ref: '#/components/responses/InternalError' /api/v1/device/crypto/ext/device/init-identify: post: tags: [CryptoAll] summary: initIdentify operationId: initIdentify requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/Base64PairRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ApiResponseAny' '400': $ref: '#/components/responses/BadRequest' '500': $ref: '#/components/responses/InternalError' /api/v1/device/crypto/ext/device/status: get: tags: [CryptoAll] summary: getDeviceStatus operationId: getDeviceStatus parameters: - name: statusBufferSize in: query required: true schema: type: integer format: int32 responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ApiResponseAny' '400': $ref: '#/components/responses/BadRequest' '500': $ref: '#/components/responses/InternalError' /api/v1/device/crypto/ext/ecc/external/decrypt: post: tags: [CryptoAll] summary: eccExternalDecrypt operationId: eccExternalDecrypt requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/EccExternalDecryptRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ApiResponseAny' '400': $ref: '#/components/responses/BadRequest' '500': $ref: '#/components/responses/InternalError' /api/v1/device/crypto/ext/ecc/external/encrypt: post: tags: [CryptoAll] summary: eccExternalEncrypt operationId: eccExternalEncrypt requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/EccExternalEncryptRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ApiResponseAny' '400': $ref: '#/components/responses/BadRequest' '500': $ref: '#/components/responses/InternalError' /api/v1/device/crypto/ext/ecc/external/sign: post: tags: [CryptoAll] summary: eccExternalSign operationId: eccExternalSign requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/EccExternalSignRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ApiResponseAny' '400': $ref: '#/components/responses/BadRequest' '500': $ref: '#/components/responses/InternalError' /api/v1/device/crypto/ext/ecc/external/verify: post: tags: [CryptoAll] summary: eccExternalVerify operationId: eccExternalVerify requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/EccExternalVerifyRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ApiResponseAny' '400': $ref: '#/components/responses/BadRequest' '500': $ref: '#/components/responses/InternalError' /api/v1/device/crypto/ext/ecc/internal/sign: post: tags: [CryptoAll] summary: eccInternalSign operationId: eccInternalSign requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/EccInternalSignRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ApiResponseAny' '400': $ref: '#/components/responses/BadRequest' '500': $ref: '#/components/responses/InternalError' /api/v1/device/crypto/ext/ecc/internal/verify: post: tags: [CryptoAll] summary: eccInternalVerify operationId: eccInternalVerify requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/EccInternalVerifyRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ApiResponseAny' '400': $ref: '#/components/responses/BadRequest' '500': $ref: '#/components/responses/InternalError' /api/v1/device/crypto/ext/ik/backup: post: tags: [CryptoAll] summary: backupIk operationId: backupIk parameters: - name: keyType in: query required: true schema: type: integer format: int32 responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ApiResponseAny' '400': $ref: '#/components/responses/BadRequest' '500': $ref: '#/components/responses/InternalError' /api/v1/device/crypto/ext/ik/destroy: post: tags: [CryptoAll] summary: destroyIk operationId: destroyIk parameters: - name: keyType in: query required: true schema: type: integer format: int32 responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ApiResponseAny' '400': $ref: '#/components/responses/BadRequest' '500': $ref: '#/components/responses/InternalError' /api/v1/device/crypto/ext/ik/generate: post: tags: [CryptoAll] summary: generateIk operationId: generateIk parameters: - name: keyType in: query required: true schema: type: integer format: int32 responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ApiResponseAny' '400': $ref: '#/components/responses/BadRequest' '500': $ref: '#/components/responses/InternalError' /api/v1/device/crypto/ext/ik/recover: post: tags: [CryptoAll] summary: recoverIk operationId: recoverIk parameters: - name: keyType in: query required: true schema: type: integer format: int32 responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ApiResponseAny' '400': $ref: '#/components/responses/BadRequest' '500': $ref: '#/components/responses/InternalError' /api/v1/device/crypto/ext/ik/status: get: tags: [CryptoAll] summary: statusIk operationId: statusIk parameters: - name: keyType in: query required: true schema: type: integer format: int32 responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ApiResponseAny' '400': $ref: '#/components/responses/BadRequest' '500': $ref: '#/components/responses/InternalError' /api/v1/device/crypto/ext/kek/backup: post: tags: [CryptoAll] summary: backupKek operationId: backupKek parameters: - name: keyIndex in: query required: true schema: type: integer format: int32 - name: outBufferSize in: query required: true schema: type: integer format: int32 responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ApiResponseAny' '400': $ref: '#/components/responses/BadRequest' '500': $ref: '#/components/responses/InternalError' /api/v1/device/crypto/ext/kek/component/export: post: tags: [CryptoAll] summary: exportKekComponent operationId: exportKekComponent requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ExportKekComponentRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ApiResponseAny' '400': $ref: '#/components/responses/BadRequest' '500': $ref: '#/components/responses/InternalError' /api/v1/device/crypto/ext/kek/component/import: post: tags: [CryptoAll] summary: importKekComponent operationId: importKekComponent requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/KekComponentRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ApiResponseAny' '400': $ref: '#/components/responses/BadRequest' '500': $ref: '#/components/responses/InternalError' /api/v1/device/crypto/ext/kek/delete: post: tags: [CryptoAll] summary: deleteKek operationId: deleteKek parameters: - name: keyIndex in: query required: true schema: type: integer format: int32 responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ApiResponseAny' '400': $ref: '#/components/responses/BadRequest' '500': $ref: '#/components/responses/InternalError' /api/v1/device/crypto/ext/kek/import: post: tags: [CryptoAll] summary: importKek operationId: importKek requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ImportKekRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ApiResponseAny' '400': $ref: '#/components/responses/BadRequest' '500': $ref: '#/components/responses/InternalError' /api/v1/device/crypto/ext/kek/recover: post: tags: [CryptoAll] summary: recoverKek operationId: recoverKek requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/RecoverKekRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ApiResponseAny' '400': $ref: '#/components/responses/BadRequest' '500': $ref: '#/components/responses/InternalError' /api/v1/device/crypto/ext/key/update-backed: post: tags: [CryptoAll] summary: updateBackedKey operationId: updateBackedKey requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateBackedKeyRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ApiResponseAny' '400': $ref: '#/components/responses/BadRequest' '500': $ref: '#/components/responses/InternalError' /api/v1/device/crypto/ext/keypair/ecc/generate: post: tags: [CryptoAll] summary: generateKeyPairEcc operationId: generateKeyPairEcc requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/GenerateKeyPairRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ApiResponseAny' '400': $ref: '#/components/responses/BadRequest' '500': $ref: '#/components/responses/InternalError' /api/v1/device/crypto/ext/keypair/ecc/import: post: tags: [CryptoAll] summary: importKeyPairEcc operationId: importKeyPairEcc requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ImportKeyPairRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ApiResponseAny' '400': $ref: '#/components/responses/BadRequest' '500': $ref: '#/components/responses/InternalError' /api/v1/device/crypto/ext/keypair/ecc/import-encrypted: post: tags: [CryptoAll] summary: importEncryptedKeyPairEcc operationId: importEncryptedKeyPairEcc requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ImportEncKeyPairEccRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ApiResponseAny' '400': $ref: '#/components/responses/BadRequest' '500': $ref: '#/components/responses/InternalError' /api/v1/device/crypto/ext/keypair/rsa/generate: post: tags: [CryptoAll] summary: generateKeyPairRsa operationId: generateKeyPairRsa requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/GenerateKeyPairRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ApiResponseAny' '400': $ref: '#/components/responses/BadRequest' '500': $ref: '#/components/responses/InternalError' /api/v1/device/crypto/ext/keypair/rsa/import: post: tags: [CryptoAll] summary: importKeyPairRsa operationId: importKeyPairRsa requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ImportKeyPairRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ApiResponseAny' '400': $ref: '#/components/responses/BadRequest' '500': $ref: '#/components/responses/InternalError' /api/v1/device/crypto/ext/keypair/rsa/import-encrypted: post: tags: [CryptoAll] summary: importEncryptedKeyPairRsa operationId: importEncryptedKeyPairRsa requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ImportEncKeyPairRsaRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ApiResponseAny' '400': $ref: '#/components/responses/BadRequest' '500': $ref: '#/components/responses/InternalError' /api/v1/device/crypto/ext/lmk/backup: post: tags: [CryptoAll] summary: backupLmk operationId: backupLmk responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ApiResponseAny' '400': $ref: '#/components/responses/BadRequest' '500': $ref: '#/components/responses/InternalError' /api/v1/device/crypto/ext/lmk/backup-ex: post: tags: [CryptoAll] summary: backupLmkEx operationId: backupLmkEx parameters: - name: outBufferSize in: query required: true schema: type: integer format: int32 responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ApiResponseAny' '400': $ref: '#/components/responses/BadRequest' '500': $ref: '#/components/responses/InternalError' /api/v1/device/crypto/ext/lmk/destroy: post: tags: [CryptoAll] summary: destroyLmk operationId: destroyLmk responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ApiResponseAny' '400': $ref: '#/components/responses/BadRequest' '500': $ref: '#/components/responses/InternalError' /api/v1/device/crypto/ext/lmk/generate: post: tags: [CryptoAll] summary: generateLmk operationId: generateLmk responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ApiResponseAny' '400': $ref: '#/components/responses/BadRequest' '500': $ref: '#/components/responses/InternalError' /api/v1/device/crypto/ext/lmk/load: post: tags: [CryptoAll] summary: loadLmk operationId: loadLmk responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ApiResponseAny' '400': $ref: '#/components/responses/BadRequest' '500': $ref: '#/components/responses/InternalError' /api/v1/device/crypto/ext/lmk/recover: post: tags: [CryptoAll] summary: recoverLmk operationId: recoverLmk responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ApiResponseAny' '400': $ref: '#/components/responses/BadRequest' '500': $ref: '#/components/responses/InternalError' /api/v1/device/crypto/ext/lmk/recover-ex: post: tags: [CryptoAll] summary: recoverLmkEx operationId: recoverLmkEx requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/Base64DataRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ApiResponseAny' '400': $ref: '#/components/responses/BadRequest' '500': $ref: '#/components/responses/InternalError' /api/v1/device/crypto/ext/private-key/access-right/get: post: tags: [CryptoAll] summary: getPrivateKeyAccessRight operationId: getPrivateKeyAccessRight requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/PrivateKeyAccessRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ApiResponseAny' '400': $ref: '#/components/responses/BadRequest' '500': $ref: '#/components/responses/InternalError' /api/v1/device/crypto/ext/private-key/access-right/release: post: tags: [CryptoAll] summary: releasePrivateKeyAccessRight operationId: releasePrivateKeyAccessRight parameters: - name: keyIndex in: query required: true schema: type: integer format: int32 responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ApiResponseAny' '400': $ref: '#/components/responses/BadRequest' '500': $ref: '#/components/responses/InternalError' /api/v1/device/crypto/ext/private-key/password/change: post: tags: [CryptoAll] summary: changePrivateKeyAccessPassword operationId: changePrivateKeyAccessPassword requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ChangePrivateKeyPasswordRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ApiResponseAny' '400': $ref: '#/components/responses/BadRequest' '500': $ref: '#/components/responses/InternalError' /api/v1/device/crypto/ext/public-key/ecc/enc/export: get: tags: [CryptoAll] summary: exportEncPublicKeyEcc operationId: exportEncPublicKeyEcc parameters: - name: keyIndex in: query required: true schema: type: integer format: int32 - name: outBufferSize in: query required: true schema: type: integer format: int32 responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ApiResponseAny' '400': $ref: '#/components/responses/BadRequest' '500': $ref: '#/components/responses/InternalError' /api/v1/device/crypto/ext/public-key/ecc/sign/export: get: tags: [CryptoAll] summary: exportSignPublicKeyEcc operationId: exportSignPublicKeyEcc parameters: - name: keyIndex in: query required: true schema: type: integer format: int32 - name: outBufferSize in: query required: true schema: type: integer format: int32 responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ApiResponseAny' '400': $ref: '#/components/responses/BadRequest' '500': $ref: '#/components/responses/InternalError' /api/v1/device/crypto/ext/public-key/rsa/enc/export: get: tags: [CryptoAll] summary: exportEncPublicKeyRsa operationId: exportEncPublicKeyRsa parameters: - name: keyIndex in: query required: true schema: type: integer format: int32 - name: outBufferSize in: query required: true schema: type: integer format: int32 responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ApiResponseAny' '400': $ref: '#/components/responses/BadRequest' '500': $ref: '#/components/responses/InternalError' /api/v1/device/crypto/ext/public-key/rsa/sign/export: get: tags: [CryptoAll] summary: exportSignPublicKeyRsa operationId: exportSignPublicKeyRsa parameters: - name: keyIndex in: query required: true schema: type: integer format: int32 - name: outBufferSize in: query required: true schema: type: integer format: int32 responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ApiResponseAny' '400': $ref: '#/components/responses/BadRequest' '500': $ref: '#/components/responses/InternalError' /api/v1/device/crypto/ext/rsa/external/private-op: post: tags: [CryptoAll] summary: rsaExternalPrivateOp operationId: rsaExternalPrivateOp requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/RsaExternalPrivateKeyOpRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ApiResponseAny' '400': $ref: '#/components/responses/BadRequest' '500': $ref: '#/components/responses/InternalError' /api/v1/device/crypto/ext/rsa/external/public-op: post: tags: [CryptoAll] summary: rsaExternalPublicOp operationId: rsaExternalPublicOp requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/RsaExternalPublicKeyOpRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ApiResponseAny' '400': $ref: '#/components/responses/BadRequest' '500': $ref: '#/components/responses/InternalError' /api/v1/device/crypto/ext/rsa/internal/private-op: post: tags: [CryptoAll] summary: rsaInternalPrivateOp operationId: rsaInternalPrivateOp requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/RsaInternalKeyOpRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ApiResponseAny' '400': $ref: '#/components/responses/BadRequest' '500': $ref: '#/components/responses/InternalError' /api/v1/device/crypto/ext/rsa/internal/public-op: post: tags: [CryptoAll] summary: rsaInternalPublicOp operationId: rsaInternalPublicOp requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/RsaInternalKeyOpRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ApiResponseAny' '400': $ref: '#/components/responses/BadRequest' '500': $ref: '#/components/responses/InternalError' /api/v1/device/crypto/ext/session-key/ecc/epk/generate: post: tags: [CryptoAll] summary: generateKeyWithEpkEcc operationId: generateKeyWithEpkEcc requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/GenerateKeyWithEpkEccRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ApiResponseAny' '400': $ref: '#/components/responses/BadRequest' '500': $ref: '#/components/responses/InternalError' /api/v1/device/crypto/ext/session-key/ecc/ipk/generate: post: tags: [CryptoAll] summary: generateKeyWithIpkEcc operationId: generateKeyWithIpkEcc requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/GenerateKeyWithIpkEccRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ApiResponseAny' '400': $ref: '#/components/responses/BadRequest' '500': $ref: '#/components/responses/InternalError' /api/v1/device/crypto/ext/session-key/ecc/isk/import: post: tags: [CryptoAll] summary: importKeyWithIskEcc operationId: importKeyWithIskEcc requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ImportKeyWithIskEccRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ApiResponseAny' '400': $ref: '#/components/responses/BadRequest' '500': $ref: '#/components/responses/InternalError' /api/v1/device/crypto/ext/session-key/kek/generate: post: tags: [CryptoAll] summary: generateKeyWithKek operationId: generateKeyWithKek requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/GenerateKeyWithKekRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ApiResponseAny' '400': $ref: '#/components/responses/BadRequest' '500': $ref: '#/components/responses/InternalError' /api/v1/device/crypto/ext/session-key/rsa/epk/generate: post: tags: [CryptoAll] summary: generateKeyWithEpkRsa operationId: generateKeyWithEpkRsa requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/GenerateKeyWithEpkRsaRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ApiResponseAny' '400': $ref: '#/components/responses/BadRequest' '500': $ref: '#/components/responses/InternalError' /api/v1/device/crypto/ext/session-key/rsa/ipk/generate: post: tags: [CryptoAll] summary: generateKeyWithIpkRsa operationId: generateKeyWithIpkRsa requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/GenerateKeyWithIpkRsaRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ApiResponseAny' '400': $ref: '#/components/responses/BadRequest' '500': $ref: '#/components/responses/InternalError' /api/v1/device/crypto/ext/session-key/rsa/isk/import: post: tags: [CryptoAll] summary: importKeyWithIskRsa operationId: importKeyWithIskRsa requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ImportKeyWithIskRsaRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ApiResponseAny' '400': $ref: '#/components/responses/BadRequest' '500': $ref: '#/components/responses/InternalError' /api/v1/device/crypto/ext/ukey/certificate/generate: post: tags: [CryptoAll] summary: generateCertificate operationId: generateCertificate requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/Base64DataRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ApiResponseAny' '400': $ref: '#/components/responses/BadRequest' '500': $ref: '#/components/responses/InternalError' /api/v1/device/crypto/ext/ukey/generate: post: tags: [CryptoAll] summary: generateUkey operationId: generateUkey requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UkeyGenerateRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ApiResponseAny' '400': $ref: '#/components/responses/BadRequest' '500': $ref: '#/components/responses/InternalError' /api/v1/device/crypto/ext/ukey/ik-component/read: post: tags: [CryptoAll] summary: readUkeyIkComponent operationId: readUkeyIkComponent requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/KeyTypePinRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ApiResponseAny' '400': $ref: '#/components/responses/BadRequest' '500': $ref: '#/components/responses/InternalError' /api/v1/device/crypto/ext/ukey/lmk-component/read: post: tags: [CryptoAll] summary: readLmkComponent operationId: readLmkComponent requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/Base64DataRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ApiResponseAny' '400': $ref: '#/components/responses/BadRequest' '500': $ref: '#/components/responses/InternalError' /api/v1/device/crypto/ext/ukey/login: post: tags: [CryptoAll] summary: loginUkey operationId: loginUkey requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UkeyLoginRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ApiResponseAny' '400': $ref: '#/components/responses/BadRequest' '500': $ref: '#/components/responses/InternalError' /api/v1/device/crypto/ext/ukey/login-status: get: tags: [CryptoAll] summary: loginStatus operationId: loginStatus responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ApiResponseAny' '400': $ref: '#/components/responses/BadRequest' '500': $ref: '#/components/responses/InternalError' /api/v1/device/crypto/ext/ukey/logout-admin: post: tags: [CryptoAll] summary: logoutAdmin operationId: logoutAdmin parameters: - name: adminIndex in: query required: true schema: type: integer format: int32 responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ApiResponseAny' '400': $ref: '#/components/responses/BadRequest' '500': $ref: '#/components/responses/InternalError' /api/v1/device/crypto/ext/ukey/pin/change: post: tags: [CryptoAll] summary: changeUkeyPin operationId: changeUkeyPin requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UkeyPinChangeRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ApiResponseAny' '400': $ref: '#/components/responses/BadRequest' '500': $ref: '#/components/responses/InternalError' /api/v1/device/crypto/ext/ukey/unlock: post: tags: [CryptoAll] summary: unlockUkey operationId: unlockUkey requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UkeyUnlockRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ApiResponseAny' '400': $ref: '#/components/responses/BadRequest' '500': $ref: '#/components/responses/InternalError' /api/v1/device/crypto/ext/user-key/backup: post: tags: [CryptoAll] summary: backupUserKey operationId: backupUserKey parameters: - name: keyIndex in: query required: true schema: type: integer format: int32 - name: keyType in: query required: true schema: type: integer format: int32 - name: outBufferSize in: query required: true schema: type: integer format: int32 responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ApiResponseAny' '400': $ref: '#/components/responses/BadRequest' '500': $ref: '#/components/responses/InternalError' /api/v1/device/crypto/ext/user-key/delete: post: tags: [CryptoAll] summary: deleteUserKey operationId: deleteUserKey parameters: - name: keyIndex in: query required: true schema: type: integer format: int32 responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ApiResponseAny' '400': $ref: '#/components/responses/BadRequest' '500': $ref: '#/components/responses/InternalError' /api/v1/device/crypto/ext/user-key/ecc/status: get: tags: [CryptoAll] summary: statusUserKeyEcc operationId: statusUserKeyEcc parameters: - name: keyIndex in: query required: true schema: type: integer format: int32 - name: keyType in: query required: true schema: type: integer format: int32 responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ApiResponseAny' '400': $ref: '#/components/responses/BadRequest' '500': $ref: '#/components/responses/InternalError' /api/v1/device/crypto/ext/user-key/recover: post: tags: [CryptoAll] summary: recoverUserKey operationId: recoverUserKey requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/RecoverUserKeyRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ApiResponseAny' '400': $ref: '#/components/responses/BadRequest' '500': $ref: '#/components/responses/InternalError' /api/v1/device/crypto/ext/user-key/rsa/status: get: tags: [CryptoAll] summary: statusUserKeyRsa operationId: statusUserKeyRsa parameters: - name: keyIndex in: query required: true schema: type: integer format: int32 - name: keyType in: query required: true schema: type: integer format: int32 responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ApiResponseAny' '400': $ref: '#/components/responses/BadRequest' '500': $ref: '#/components/responses/InternalError' /api/v1/device/crypto/file/create: post: tags: [CryptoAll] summary: createFile operationId: createFile requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CryptoFileCreateInternalRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ApiResponseAny' '400': $ref: '#/components/responses/BadRequest' '500': $ref: '#/components/responses/InternalError' /api/v1/device/crypto/file/delete: post: tags: [CryptoAll] summary: deleteFile operationId: deleteFile requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CryptoFileDeleteInternalRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ApiResponseAny' '400': $ref: '#/components/responses/BadRequest' '500': $ref: '#/components/responses/InternalError' /api/v1/device/crypto/file/read: post: tags: [CryptoAll] summary: readFile operationId: readFile requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CryptoFileReadInternalRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ApiResponseAny' '400': $ref: '#/components/responses/BadRequest' '500': $ref: '#/components/responses/InternalError' /api/v1/device/crypto/file/write: post: tags: [CryptoAll] summary: writeFile operationId: writeFile requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CryptoFileWriteInternalRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ApiResponseAny' '400': $ref: '#/components/responses/BadRequest' '500': $ref: '#/components/responses/InternalError' /api/v1/device/crypto/hmac: post: tags: [CryptoAll] summary: hmac operationId: hmac requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CryptoHmacInternalRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ApiResponseAny' '400': $ref: '#/components/responses/BadRequest' '500': $ref: '#/components/responses/InternalError' /api/v1/device/crypto/kek/generate: post: tags: [CryptoAll] summary: generateKek operationId: generateKek requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CryptoGenerateKekInternalRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ApiResponseAny' '400': $ref: '#/components/responses/BadRequest' '500': $ref: '#/components/responses/InternalError' /api/v1/device/crypto/kek/status: get: tags: [CryptoAll] summary: kekStatus operationId: kekStatus parameters: - name: keyIndex in: query required: true schema: type: integer format: int32 responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ApiResponseAny' '400': $ref: '#/components/responses/BadRequest' '500': $ref: '#/components/responses/InternalError' /api/v1/device/crypto/lmk/check: get: tags: [CryptoAll] summary: checkLmk operationId: checkLmk responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ApiResponseAny' '400': $ref: '#/components/responses/BadRequest' '500': $ref: '#/components/responses/InternalError' /api/v1/device/crypto/lmk/seed-mac: get: tags: [CryptoAll] summary: exportLmkSeedMac operationId: exportLmkSeedMac responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ApiResponseAny' '400': $ref: '#/components/responses/BadRequest' '500': $ref: '#/components/responses/InternalError' /api/v1/device/crypto/mac/plain: post: tags: [CryptoAll] summary: macPlain operationId: macPlain requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CryptoMacInternalRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ApiResponseAny' '400': $ref: '#/components/responses/BadRequest' '500': $ref: '#/components/responses/InternalError' /api/v1/device/crypto/random: get: tags: [CryptoAll] summary: random operationId: random parameters: - name: length in: query required: true schema: type: integer format: int32 responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ApiResponseAny' '400': $ref: '#/components/responses/BadRequest' '500': $ref: '#/components/responses/InternalError' /api/v1/device/crypto/self-test: post: tags: [CryptoAll] summary: selfTest operationId: selfTest responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ApiResponseAny' '400': $ref: '#/components/responses/BadRequest' '500': $ref: '#/components/responses/InternalError' /api/v1/device/crypto/std/keypair/ecc: post: tags: [CryptoAll] summary: generateStandardEccKeyPair operationId: generateStandardEccKeyPair requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CryptoGenerateStandardEccKeyPairInternalRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ApiResponseAny' '400': $ref: '#/components/responses/BadRequest' '500': $ref: '#/components/responses/InternalError' /api/v1/device/crypto/std/keypair/rsa: post: tags: [CryptoAll] summary: generateStandardRsaKeyPair operationId: generateStandardRsaKeyPair requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CryptoGenerateStandardRsaKeyPairInternalRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ApiResponseAny' '400': $ref: '#/components/responses/BadRequest' '500': $ref: '#/components/responses/InternalError' components: securitySchemes: InternalTokenAuth: type: apiKey in: header name: X-Internal-Token responses: BadRequest: description: 参数错误 content: application/json: schema: $ref: '#/components/schemas/ApiResponseAny' InternalError: description: 业务/系统错误(含密码卡调用失败) content: application/json: schema: $ref: '#/components/schemas/ApiResponseAny' schemas: ApiResponseAny: type: object properties: success: type: boolean code: type: integer msg: type: string data: type: object additionalProperties: true nullable: true timestamp: type: integer format: int64 traceId: type: string nullable: true path: type: string nullable: true required: [success, code, msg, timestamp] Base64DataRequest: type: object additionalProperties: true Base64PairRequest: type: object additionalProperties: true ChangePrivateKeyPasswordRequest: type: object additionalProperties: true CryptoDigestInternalRequest: type: object additionalProperties: true CryptoExchangeEnvelopeEccInternalRequest: type: object additionalProperties: true CryptoExchangeEnvelopeRsaInternalRequest: type: object additionalProperties: true CryptoFileCreateInternalRequest: type: object additionalProperties: true CryptoFileDeleteInternalRequest: type: object additionalProperties: true CryptoFileReadInternalRequest: type: object additionalProperties: true CryptoFileWriteInternalRequest: type: object additionalProperties: true CryptoGenerateAgreementDataAndKeyEccInternalRequest: type: object additionalProperties: true CryptoGenerateKekInternalRequest: type: object additionalProperties: true CryptoGenerateSessionKeyEccInternalRequest: type: object additionalProperties: true CryptoGenerateStandardEccKeyPairInternalRequest: type: object additionalProperties: true CryptoGenerateStandardRsaKeyPairInternalRequest: type: object additionalProperties: true CryptoHmacInternalRequest: type: object additionalProperties: true CryptoMacInternalRequest: type: object additionalProperties: true CryptoSymmetricInternalRequest: type: object additionalProperties: true CryptoSymmetricKekInternalRequest: type: object additionalProperties: true EccExternalDecryptRequest: type: object additionalProperties: true EccExternalEncryptRequest: type: object additionalProperties: true EccExternalSignRequest: type: object additionalProperties: true EccExternalVerifyRequest: type: object additionalProperties: true EccInternalSignRequest: type: object additionalProperties: true EccInternalVerifyRequest: type: object additionalProperties: true ExportKekComponentRequest: type: object additionalProperties: true GenerateKeyPairRequest: type: object additionalProperties: true GenerateKeyWithEpkEccRequest: type: object additionalProperties: true GenerateKeyWithEpkRsaRequest: type: object additionalProperties: true GenerateKeyWithIpkEccRequest: type: object additionalProperties: true GenerateKeyWithIpkRsaRequest: type: object additionalProperties: true GenerateKeyWithKekRequest: type: object additionalProperties: true ImportEncKeyPairEccRequest: type: object additionalProperties: true ImportEncKeyPairRsaRequest: type: object additionalProperties: true ImportKekRequest: type: object additionalProperties: true ImportKeyPairRequest: type: object additionalProperties: true ImportKeyWithIskEccRequest: type: object additionalProperties: true ImportKeyWithIskRsaRequest: type: object additionalProperties: true KekComponentRequest: type: object additionalProperties: true KeyTypePinRequest: type: object additionalProperties: true PrivateKeyAccessRequest: type: object additionalProperties: true RecoverKekRequest: type: object additionalProperties: true RecoverUserKeyRequest: type: object additionalProperties: true RsaExternalPrivateKeyOpRequest: type: object additionalProperties: true RsaExternalPublicKeyOpRequest: type: object additionalProperties: true RsaInternalKeyOpRequest: type: object additionalProperties: true UkeyGenerateRequest: type: object additionalProperties: true UkeyLoginRequest: type: object additionalProperties: true UkeyPinChangeRequest: type: object additionalProperties: true UkeyUnlockRequest: type: object additionalProperties: true UpdateBackedKeyRequest: type: object additionalProperties: true