Skip to content

IMintedKeysBuilder Interface

The continuation of UseKeysInProcess: the placement that mints its own keys must say where the ring lives, and the packages hang their PersistRingTo... calls off this.

C#
public interface IMintedKeysBuilder

Remarks

A ring store belongs to this placement and to no other, so it attaches here rather than to the service collection: there is nothing to register a store onto unless the placement that needs one was chosen. The placement where the custodian holds every key has no ring at all.

Properties

IMintedKeysBuilder.Services Property

The collection a PersistRingTo... call registers the store into.

C#
Microsoft.Extensions.DependencyInjection.IServiceCollection Services { get; }

Property Value

Microsoft.Extensions.DependencyInjection.IServiceCollection

Methods

IMintedKeysBuilder.AdoptExistingKeys(JsonWebKey[]) Method

Takes keys the server already signs with into the ring, so that switching to minted keys does not change which key produces on the day it happens.

C#
Abblix.Jwt.ExternalKeys.IMintedKeysBuilder AdoptExistingKeys(params Abblix.Jwt.JsonWebKey[] keys);

Parameters

keys JsonWebKey[]

The keys to take, private halves included - the ring seals what it is given, and a key without its private half can be published but cannot sign.

Returns

IMintedKeysBuilder
The same builder, so the PersistRingTo... call follows.

Remarks

This is a migration call and is meant to be deleted once the ring has rotated past the keys it names, but nothing breaks if it is not: keys are taken only into an EMPTY ring, so from the first entry onward the call does nothing. See AdoptedKeys for what adoption does to the ordering.