org.pgpainless.util.NotationRegistry.kt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of pgpainless-core Show documentation
Show all versions of pgpainless-core Show documentation
Simple to use OpenPGP API for Java based on Bouncycastle
The newest version!
// SPDX-FileCopyrightText: 2023 Paul Schaub
//
// SPDX-License-Identifier: Apache-2.0
package org.pgpainless.util
/**
* Registry for known notations. Since signature verification must reject signatures with critical
* notations that are not known to the application, there must be some way to tell PGPainless which
* notations actually are known.
*
* To add a notation name, call [addKnownNotation].
*/
class NotationRegistry constructor(notations: Set = setOf()) {
private val knownNotations: MutableSet
init {
knownNotations = notations.toMutableSet()
}
/**
* Add a known notation name into the registry. This will cause critical notations with that
* name to no longer invalidate the signature.
*
* @param notationName name of the notation
*/
fun addKnownNotation(notationName: String): NotationRegistry = apply {
knownNotations.add(notationName)
}
/**
* Return true if the notation name is registered in the registry.
*
* @param notationName name of the notation
* @return true if notation is known, false otherwise.
*/
fun isKnownNotation(notationName: String): Boolean = knownNotations.contains(notationName)
/** Clear all known notations from the registry. */
fun clear() {
knownNotations.clear()
}
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy