mirror of
https://github.com/pgpainless/pgpainless.git
synced 2024-06-17 00:54:50 +02:00
Paul Schaub
68575f9f1e
Move ArmorUtils to org.pgpainless.ascii_armor Move Armored*StreamFactory to org.pgpainless.ascii_armor Move CRCingArmoredInputStreamWrapper to org.pgpainless.ascii_armor Move SessionKey to org.pgpainless.s2k Move RevocationAttributes to org.pgpainless.key Move UserId to org.pgpainless.key Move Passphrase to org.pgpainless.s2k Move NotationRegistry to org.pgpainless.policy
43 lines
1.1 KiB
Java
43 lines
1.1 KiB
Java
// SPDX-FileCopyrightText: 2020 Paul Schaub <vanitasvitae@fsfe.org>
|
|
//
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
|
|
package org.pgpainless.key.protection.passphrase_provider;
|
|
|
|
import java.util.Map;
|
|
import javax.annotation.Nullable;
|
|
|
|
import org.pgpainless.s2k.Passphrase;
|
|
|
|
/**
|
|
* Implementation of the {@link SecretKeyPassphraseProvider} that holds a map of different {@link Passphrase passphrases}.
|
|
* It will return the right passphrase depending on the key-id.
|
|
*
|
|
* Note: This provider might return null!
|
|
* TODO: Make this null-safe and throw an exception instead?
|
|
*/
|
|
public class MapBasedPassphraseProvider implements SecretKeyPassphraseProvider {
|
|
|
|
private final Map<Long, Passphrase> map;
|
|
|
|
/**
|
|
* Create a new map based passphrase provider.
|
|
*
|
|
* @param passphraseMap map of key-ids and passphrases
|
|
*/
|
|
public MapBasedPassphraseProvider(Map<Long, Passphrase> passphraseMap) {
|
|
this.map = passphraseMap;
|
|
}
|
|
|
|
@Nullable
|
|
@Override
|
|
public Passphrase getPassphraseFor(Long keyId) {
|
|
return map.get(keyId);
|
|
}
|
|
|
|
@Override
|
|
public boolean hasPassphrase(Long keyId) {
|
|
return map.containsKey(keyId);
|
|
}
|
|
}
|