[ {
  "shortName" : "fun findInZip()",
  "longName" : "",
  "relativeFileName" : "lib/src/main/kotlin/org/jetbrains/zip/signer/metadata/ZipMetadata.kt",
  "fileLinesCount" : 97,
  "components" : [ "primary::lib" ],
  "startLine" : 23,
  "endLine" : 63,
  "linesOfCode" : 36,
  "mcCabeIndex" : 7,
  "numberOfParameters" : 2,
  "numberOfLiterals" : 0,
  "numberOfStatements" : 0,
  "numberOfExpressions" : 0
}, {
  "shortName" : "fun generateDummyCertificate()",
  "longName" : "",
  "relativeFileName" : "lib/src/main/kotlin/org/jetbrains/zip/signer/signer/CertificateUtils.kt",
  "fileLinesCount" : 210,
  "components" : [ "primary::lib" ],
  "startLine" : 59,
  "endLine" : 85,
  "linesOfCode" : 26,
  "mcCabeIndex" : 1,
  "numberOfParameters" : 1,
  "numberOfLiterals" : 0,
  "numberOfStatements" : 0,
  "numberOfExpressions" : 0
}, {
  "shortName" : "override fun verify()",
  "longName" : "",
  "relativeFileName" : "lib/src/main/kotlin/org/jetbrains/zip/signer/verifier/DefaultSignatureVerifier.kt",
  "fileLinesCount" : 42,
  "components" : [ "primary::lib" ],
  "startLine" : 17,
  "endLine" : 41,
  "linesOfCode" : 25,
  "mcCabeIndex" : 5,
  "numberOfParameters" : 2,
  "numberOfLiterals" : 0,
  "numberOfStatements" : 0,
  "numberOfExpressions" : 0
}, {
  "shortName" : "fun getCrlUris()",
  "longName" : "",
  "relativeFileName" : "lib/src/main/kotlin/org/jetbrains/zip/signer/signer/CertificateUtils.kt",
  "fileLinesCount" : 210,
  "components" : [ "primary::lib" ],
  "startLine" : 121,
  "endLine" : 144,
  "linesOfCode" : 24,
  "mcCabeIndex" : 3,
  "numberOfParameters" : 1,
  "numberOfLiterals" : 0,
  "numberOfStatements" : 0,
  "numberOfExpressions" : 0
}, {
  "shortName" : "override fun feed()",
  "longName" : "",
  "relativeFileName" : "lib/src/main/kotlin/org/jetbrains/zip/signer/datasource/SeekableByteChannelDataSource.kt",
  "fileLinesCount" : 94,
  "components" : [ "primary::lib" ],
  "startLine" : 41,
  "endLine" : 64,
  "linesOfCode" : 24,
  "mcCabeIndex" : 5,
  "numberOfParameters" : 3,
  "numberOfLiterals" : 0,
  "numberOfStatements" : 0,
  "numberOfExpressions" : 0
}, {
  "shortName" : "override fun copyTo()",
  "longName" : "",
  "relativeFileName" : "lib/src/main/kotlin/org/jetbrains/zip/signer/datasource/SeekableByteChannelDataSource.kt",
  "fileLinesCount" : 94,
  "components" : [ "primary::lib" ],
  "startLine" : 66,
  "endLine" : 85,
  "linesOfCode" : 20,
  "mcCabeIndex" : 4,
  "numberOfParameters" : 3,
  "numberOfLiterals" : 0,
  "numberOfStatements" : 0,
  "numberOfExpressions" : 0
}, {
  "shortName" : "fun findRevokedCertificate()",
  "longName" : "",
  "relativeFileName" : "lib/src/main/kotlin/org/jetbrains/zip/signer/signer/CertificateUtils.kt",
  "fileLinesCount" : 210,
  "components" : [ "primary::lib" ],
  "startLine" : 156,
  "endLine" : 174,
  "linesOfCode" : 19,
  "mcCabeIndex" : 2,
  "numberOfParameters" : 2,
  "numberOfLiterals" : 0,
  "numberOfStatements" : 0,
  "numberOfExpressions" : 0
}, {
  "shortName" : "fun unsign()",
  "longName" : "",
  "relativeFileName" : "lib/src/main/kotlin/org/jetbrains/zip/signer/signing/ZipSigner.kt",
  "fileLinesCount" : 120,
  "components" : [ "primary::lib" ],
  "startLine" : 42,
  "endLine" : 63,
  "linesOfCode" : 19,
  "mcCabeIndex" : 1,
  "numberOfParameters" : 2,
  "numberOfLiterals" : 0,
  "numberOfStatements" : 0,
  "numberOfExpressions" : 0
}, {
  "shortName" : "fun sign()",
  "longName" : "",
  "relativeFileName" : "lib/src/main/kotlin/org/jetbrains/zip/signer/signing/ZipSigner.kt",
  "fileLinesCount" : 120,
  "components" : [ "primary::lib" ],
  "startLine" : 22,
  "endLine" : 39,
  "linesOfCode" : 18,
  "mcCabeIndex" : 1,
  "numberOfParameters" : 4,
  "numberOfLiterals" : 0,
  "numberOfStatements" : 0,
  "numberOfExpressions" : 0
}, {
  "shortName" : "fun consume()",
  "longName" : "",
  "relativeFileName" : "lib/src/main/kotlin/org/jetbrains/zip/signer/digest/ChunkDigester.kt",
  "fileLinesCount" : 48,
  "components" : [ "primary::lib" ],
  "startLine" : 18,
  "endLine" : 38,
  "linesOfCode" : 18,
  "mcCabeIndex" : 2,
  "numberOfParameters" : 1,
  "numberOfLiterals" : 0,
  "numberOfStatements" : 0,
  "numberOfExpressions" : 0
}, {
  "shortName" : "fun findZipSectionsInformation()",
  "longName" : "",
  "relativeFileName" : "lib/src/main/kotlin/org/jetbrains/zip/signer/zip/ZipUtils.kt",
  "fileLinesCount" : 126,
  "components" : [ "primary::lib" ],
  "startLine" : 22,
  "endLine" : 40,
  "linesOfCode" : 17,
  "mcCabeIndex" : 3,
  "numberOfParameters" : 1,
  "numberOfLiterals" : 0,
  "numberOfStatements" : 0,
  "numberOfExpressions" : 0
}, {
  "shortName" : "fun main()",
  "longName" : "",
  "relativeFileName" : "google-kms-signer-cli/src/main/kotlin/org/jetbrains/zip/signer/GoogleCloudSignerCli.kt",
  "fileLinesCount" : 132,
  "components" : [ "primary::google-kms-signer-cli" ],
  "startLine" : 19,
  "endLine" : 34,
  "linesOfCode" : 16,
  "mcCabeIndex" : 2,
  "numberOfParameters" : 1,
  "numberOfLiterals" : 0,
  "numberOfStatements" : 0,
  "numberOfExpressions" : 0
}, {
  "shortName" : "fun main()",
  "longName" : "",
  "relativeFileName" : "cli/src/main/kotlin/org/jetbrains/zip/signer/ZipSigningTool.kt",
  "fileLinesCount" : 149,
  "components" : [ "primary::cli" ],
  "startLine" : 21,
  "endLine" : 36,
  "linesOfCode" : 16,
  "mcCabeIndex" : 2,
  "numberOfParameters" : 1,
  "numberOfLiterals" : 0,
  "numberOfStatements" : 0,
  "numberOfExpressions" : 0
}, {
  "shortName" : "override fun sign()",
  "longName" : "",
  "relativeFileName" : "lib/src/main/kotlin/org/jetbrains/zip/signer/signing/DefaultSignatureProvider.kt",
  "fileLinesCount" : 28,
  "components" : [ "primary::lib" ],
  "startLine" : 13,
  "endLine" : 27,
  "linesOfCode" : 15,
  "mcCabeIndex" : 4,
  "numberOfParameters" : 1,
  "numberOfLiterals" : 0,
  "numberOfStatements" : 0,
  "numberOfExpressions" : 0
}, {
  "shortName" : "fun computeDigest()",
  "longName" : "",
  "relativeFileName" : "lib/src/main/kotlin/org/jetbrains/zip/signer/digest/DigestUtils.kt",
  "fileLinesCount" : 47,
  "components" : [ "primary::lib" ],
  "startLine" : 12,
  "endLine" : 26,
  "linesOfCode" : 15,
  "mcCabeIndex" : 1,
  "numberOfParameters" : 3,
  "numberOfLiterals" : 0,
  "numberOfStatements" : 0,
  "numberOfExpressions" : 0
}, {
  "shortName" : "override fun sign()",
  "longName" : "",
  "relativeFileName" : "google-kms-signer-cli/src/main/kotlin/org/jetbrains/zip/signer/GoogleCloudSignatureProvider.kt",
  "fileLinesCount" : 40,
  "components" : [ "primary::google-kms-signer-cli" ],
  "startLine" : 25,
  "endLine" : 39,
  "linesOfCode" : 15,
  "mcCabeIndex" : 1,
  "numberOfParameters" : 1,
  "numberOfLiterals" : 0,
  "numberOfStatements" : 0,
  "numberOfExpressions" : 0
}, {
  "shortName" : "fun loadSignerInfoFromText()",
  "longName" : "",
  "relativeFileName" : "lib/src/main/kotlin/org/jetbrains/zip/signer/signer/SignerInfoLoader.kt",
  "fileLinesCount" : 52,
  "components" : [ "primary::lib" ],
  "startLine" : 24,
  "endLine" : 36,
  "linesOfCode" : 13,
  "mcCabeIndex" : 1,
  "numberOfParameters" : 3,
  "numberOfLiterals" : 0,
  "numberOfStatements" : 0,
  "numberOfExpressions" : 0
}, {
  "shortName" : "fun loadSignerInfoFromFiles()",
  "longName" : "",
  "relativeFileName" : "lib/src/main/kotlin/org/jetbrains/zip/signer/signer/SignerInfoLoader.kt",
  "fileLinesCount" : 52,
  "components" : [ "primary::lib" ],
  "startLine" : 39,
  "endLine" : 51,
  "linesOfCode" : 13,
  "mcCabeIndex" : 1,
  "numberOfParameters" : 3,
  "numberOfLiterals" : 0,
  "numberOfStatements" : 0,
  "numberOfExpressions" : 0
}, {
  "shortName" : "fun loadSignerInfoFromKeystore()",
  "longName" : "",
  "relativeFileName" : "lib/src/main/kotlin/org/jetbrains/zip/signer/signer/SignerInfoLoader.kt",
  "fileLinesCount" : 52,
  "components" : [ "primary::lib" ],
  "startLine" : 10,
  "endLine" : 21,
  "linesOfCode" : 12,
  "mcCabeIndex" : 1,
  "numberOfParameters" : 6,
  "numberOfLiterals" : 0,
  "numberOfStatements" : 0,
  "numberOfExpressions" : 0
}, {
  "shortName" : "fun loadOpenSshKey()",
  "longName" : "",
  "relativeFileName" : "lib/src/main/kotlin/org/jetbrains/zip/signer/signer/PublicKeyUtils.kt",
  "fileLinesCount" : 67,
  "components" : [ "primary::lib" ],
  "startLine" : 25,
  "endLine" : 36,
  "linesOfCode" : 12,
  "mcCabeIndex" : 2,
  "numberOfParameters" : 1,
  "numberOfLiterals" : 0,
  "numberOfStatements" : 0,
  "numberOfExpressions" : 0
}, {
  "shortName" : "fun toByteArray()",
  "longName" : "",
  "relativeFileName" : "lib/src/main/kotlin/org/jetbrains/zip/signer/metadata/ZipMetadata.kt",
  "fileLinesCount" : 97,
  "components" : [ "primary::lib" ],
  "startLine" : 84,
  "endLine" : 95,
  "linesOfCode" : 12,
  "mcCabeIndex" : 1,
  "numberOfParameters" : 0,
  "numberOfLiterals" : 0,
  "numberOfStatements" : 0,
  "numberOfExpressions" : 0
}, {
  "shortName" : "fun getModifiedEocdRecord()",
  "longName" : "",
  "relativeFileName" : "lib/src/main/kotlin/org/jetbrains/zip/signer/zip/ZipUtils.kt",
  "fileLinesCount" : 126,
  "components" : [ "primary::lib" ],
  "startLine" : 42,
  "endLine" : 53,
  "linesOfCode" : 12,
  "mcCabeIndex" : 1,
  "numberOfParameters" : 2,
  "numberOfLiterals" : 0,
  "numberOfStatements" : 0,
  "numberOfExpressions" : 0
}, {
  "shortName" : "fun getRevocationLists()",
  "longName" : "",
  "relativeFileName" : "lib/src/main/kotlin/org/jetbrains/zip/signer/signer/CertificateUtils.kt",
  "fileLinesCount" : 210,
  "components" : [ "primary::lib" ],
  "startLine" : 103,
  "endLine" : 113,
  "linesOfCode" : 11,
  "mcCabeIndex" : 3,
  "numberOfParameters" : 1,
  "numberOfLiterals" : 0,
  "numberOfStatements" : 0,
  "numberOfExpressions" : 0
}, {
  "shortName" : "override fun feed()",
  "longName" : "",
  "relativeFileName" : "lib/src/main/kotlin/org/jetbrains/zip/signer/datasource/ByteBufferDataSource.kt",
  "fileLinesCount" : 56,
  "components" : [ "primary::lib" ],
  "startLine" : 27,
  "endLine" : 36,
  "linesOfCode" : 10,
  "mcCabeIndex" : 2,
  "numberOfParameters" : 3,
  "numberOfLiterals" : 0,
  "numberOfStatements" : 0,
  "numberOfExpressions" : 0
}, {
  "shortName" : "override fun getByteBuffer()",
  "longName" : "",
  "relativeFileName" : "lib/src/main/kotlin/org/jetbrains/zip/signer/datasource/ByteBufferDataSource.kt",
  "fileLinesCount" : 56,
  "components" : [ "primary::lib" ],
  "startLine" : 12,
  "endLine" : 21,
  "linesOfCode" : 9,
  "mcCabeIndex" : 1,
  "numberOfParameters" : 2,
  "numberOfLiterals" : 0,
  "numberOfStatements" : 0,
  "numberOfExpressions" : 0
}, {
  "shortName" : "override fun slice()",
  "longName" : "",
  "relativeFileName" : "lib/src/main/kotlin/org/jetbrains/zip/signer/datasource/ByteBufferDataSource.kt",
  "fileLinesCount" : 56,
  "components" : [ "primary::lib" ],
  "startLine" : 38,
  "endLine" : 46,
  "linesOfCode" : 9,
  "mcCabeIndex" : 4,
  "numberOfParameters" : 2,
  "numberOfLiterals" : 0,
  "numberOfStatements" : 0,
  "numberOfExpressions" : 0
}, {
  "shortName" : "override fun getByteBuffer()",
  "longName" : "",
  "relativeFileName" : "lib/src/main/kotlin/org/jetbrains/zip/signer/datasource/SeekableByteChannelDataSource.kt",
  "fileLinesCount" : 94,
  "components" : [ "primary::lib" ],
  "startLine" : 87,
  "endLine" : 93,
  "linesOfCode" : 7,
  "mcCabeIndex" : 2,
  "numberOfParameters" : 2,
  "numberOfLiterals" : 0,
  "numberOfStatements" : 0,
  "numberOfExpressions" : 0
}, {
  "shortName" : "fun verify()",
  "longName" : "",
  "relativeFileName" : "lib/src/main/kotlin/org/jetbrains/zip/signer/verifier/ZipVerifier.kt",
  "fileLinesCount" : 139,
  "components" : [ "primary::lib" ],
  "startLine" : 62,
  "endLine" : 68,
  "linesOfCode" : 7,
  "mcCabeIndex" : 1,
  "numberOfParameters" : 1,
  "numberOfLiterals" : 0,
  "numberOfStatements" : 0,
  "numberOfExpressions" : 0
}, {
  "shortName" : "override fun next()",
  "longName" : "",
  "relativeFileName" : "lib/src/main/kotlin/org/jetbrains/zip/signer/digest/ChunkIterator.kt",
  "fileLinesCount" : 31,
  "components" : [ "primary::lib" ],
  "startLine" : 16,
  "endLine" : 22,
  "linesOfCode" : 7,
  "mcCabeIndex" : 2,
  "numberOfParameters" : 0,
  "numberOfLiterals" : 0,
  "numberOfStatements" : 0,
  "numberOfExpressions" : 0
}, {
  "shortName" : "override fun slice()",
  "longName" : "",
  "relativeFileName" : "lib/src/main/kotlin/org/jetbrains/zip/signer/datasource/SeekableByteChannelDataSource.kt",
  "fileLinesCount" : 94,
  "components" : [ "primary::lib" ],
  "startLine" : 34,
  "endLine" : 39,
  "linesOfCode" : 6,
  "mcCabeIndex" : 3,
  "numberOfParameters" : 2,
  "numberOfLiterals" : 0,
  "numberOfStatements" : 0,
  "numberOfExpressions" : 0
}, {
  "shortName" : "fun getResult()",
  "longName" : "",
  "relativeFileName" : "lib/src/main/kotlin/org/jetbrains/zip/signer/digest/ChunkDigester.kt",
  "fileLinesCount" : 48,
  "components" : [ "primary::lib" ],
  "startLine" : 40,
  "endLine" : 45,
  "linesOfCode" : 6,
  "mcCabeIndex" : 1,
  "numberOfParameters" : 0,
  "numberOfLiterals" : 0,
  "numberOfStatements" : 0,
  "numberOfExpressions" : 0
}, {
  "shortName" : "fun addBouncyCastleProviderIfMissing()",
  "longName" : "",
  "relativeFileName" : "lib/src/main/kotlin/org/jetbrains/zip/signer/utils/SecurityUtils.kt",
  "fileLinesCount" : 12,
  "components" : [ "primary::lib" ],
  "startLine" : 7,
  "endLine" : 11,
  "linesOfCode" : 5,
  "mcCabeIndex" : 2,
  "numberOfParameters" : 0,
  "numberOfLiterals" : 0,
  "numberOfStatements" : 0,
  "numberOfExpressions" : 0
}, {
  "shortName" : "fun loadPrivateKey()",
  "longName" : "",
  "relativeFileName" : "lib/src/main/kotlin/org/jetbrains/zip/signer/signer/PrivateKeyUtils.kt",
  "fileLinesCount" : 84,
  "components" : [ "primary::lib" ],
  "startLine" : 39,
  "endLine" : 42,
  "linesOfCode" : 4,
  "mcCabeIndex" : 1,
  "numberOfParameters" : 2,
  "numberOfLiterals" : 0,
  "numberOfStatements" : 0,
  "numberOfExpressions" : 0
}, {
  "shortName" : "fun loadCertificates()",
  "longName" : "",
  "relativeFileName" : "lib/src/main/kotlin/org/jetbrains/zip/signer/signer/CertificateUtils.kt",
  "fileLinesCount" : 210,
  "components" : [ "primary::lib" ],
  "startLine" : 54,
  "endLine" : 57,
  "linesOfCode" : 4,
  "mcCabeIndex" : 1,
  "numberOfParameters" : 1,
  "numberOfLiterals" : 0,
  "numberOfStatements" : 0,
  "numberOfExpressions" : 0
}, {
  "shortName" : "fun isValidCertificateChain()",
  "longName" : "",
  "relativeFileName" : "lib/src/main/kotlin/org/jetbrains/zip/signer/signer/CertificateUtils.kt",
  "fileLinesCount" : 210,
  "components" : [ "primary::lib" ],
  "startLine" : 87,
  "endLine" : 89,
  "linesOfCode" : 3,
  "mcCabeIndex" : 1,
  "numberOfParameters" : 1,
  "numberOfLiterals" : 0,
  "numberOfStatements" : 0,
  "numberOfExpressions" : 0
}, {
  "shortName" : "override fun copyTo()",
  "longName" : "",
  "relativeFileName" : "lib/src/main/kotlin/org/jetbrains/zip/signer/datasource/ByteBufferDataSource.kt",
  "fileLinesCount" : 56,
  "components" : [ "primary::lib" ],
  "startLine" : 23,
  "endLine" : 25,
  "linesOfCode" : 3,
  "mcCabeIndex" : 1,
  "numberOfParameters" : 3,
  "numberOfLiterals" : 0,
  "numberOfStatements" : 0,
  "numberOfExpressions" : 0
}, {
  "shortName" : "fun isSignedBy()",
  "longName" : "",
  "relativeFileName" : "lib/src/main/kotlin/org/jetbrains/zip/signer/verifier/ZipVerificationResult.kt",
  "fileLinesCount" : 54,
  "components" : [ "primary::lib" ],
  "startLine" : 21,
  "endLine" : 23,
  "linesOfCode" : 3,
  "mcCabeIndex" : 1,
  "numberOfParameters" : 1,
  "numberOfLiterals" : 0,
  "numberOfStatements" : 0,
  "numberOfExpressions" : 0
}, {
  "shortName" : "fun findCertificateChain()",
  "longName" : "",
  "relativeFileName" : "lib/src/main/kotlin/org/jetbrains/zip/signer/verifier/ZipVerificationResult.kt",
  "fileLinesCount" : 54,
  "components" : [ "primary::lib" ],
  "startLine" : 37,
  "endLine" : 39,
  "linesOfCode" : 3,
  "mcCabeIndex" : 1,
  "numberOfParameters" : 1,
  "numberOfLiterals" : 0,
  "numberOfStatements" : 0,
  "numberOfExpressions" : 0
}, {
  "shortName" : "fun verify()",
  "longName" : "",
  "relativeFileName" : "lib/src/main/kotlin/org/jetbrains/zip/signer/verifier/ZipVerifier.kt",
  "fileLinesCount" : 139,
  "components" : [ "primary::lib" ],
  "startLine" : 58,
  "endLine" : 60,
  "linesOfCode" : 3,
  "mcCabeIndex" : 1,
  "numberOfParameters" : 1,
  "numberOfLiterals" : 0,
  "numberOfStatements" : 0,
  "numberOfExpressions" : 0
} ]