Fix for CORDA-3178. FilterMyKeys now uses the key store as opposed to the cert store. ()

This commit is contained in:
Roger Willis 2019-08-30 10:55:31 +01:00 committed by GitHub
parent 4b5a38796f
commit 6202165957
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 28 additions and 1 deletions
node/src
main/kotlin/net/corda/node/services/keys
test/kotlin/net/corda/node/services/keys

@ -95,7 +95,7 @@ class BasicHSMKeyManagementService(cacheFactory: NamedCacheFactory,
}
override fun filterMyKeys(candidateKeys: Iterable<PublicKey>): Iterable<PublicKey> = database.transaction {
identityService.stripNotOurKeys(candidateKeys)
candidateKeys.filter(::containsPublicKey)
}
override fun freshKeyInternal(externalId: UUID?): PublicKey {

@ -0,0 +1,27 @@
package net.corda.node.services.keys
import net.corda.core.crypto.Crypto
import net.corda.core.identity.CordaX500Name
import net.corda.testing.common.internal.testNetworkParameters
import net.corda.testing.core.TestIdentity
import net.corda.testing.node.MockServices
import org.junit.Test
import kotlin.test.assertEquals
class FilterMyKeysTests {
@Test
fun test() {
val name = CordaX500Name("Roger", "Office", "GB")
val (_, services) = MockServices.makeTestDatabaseAndPersistentServices(
cordappPackages = emptyList(),
initialIdentity = TestIdentity(name),
networkParameters = testNetworkParameters(),
moreKeys = emptySet(),
moreIdentities = emptySet()
)
val ourKey = services.keyManagementService.freshKey()
val notOurKey = Crypto.generateKeyPair().public
val result = services.keyManagementService.filterMyKeys(listOf(ourKey, notOurKey))
assertEquals(listOf(ourKey), result)
}
}