EncryptedPrivateKeyConverterFactory.java
- /*
- * @copyright defined in LICENSE.txt
- */
- package hera.transport;
- import static hera.api.model.BytesValue.of;
- import static hera.util.BytesValueUtils.append;
- import static hera.util.BytesValueUtils.trimPrefix;
- import static hera.util.EncodingUtils.encodeHexa;
- import static hera.util.TransportUtils.copyFrom;
- import static org.slf4j.LoggerFactory.getLogger;
- import hera.api.function.Function1;
- import hera.api.model.BytesValue;
- import hera.api.model.EncryptedPrivateKey;
- import hera.spec.resolver.EncryptedPrivateKeySpec;
- import hera.util.HexUtils;
- import org.slf4j.Logger;
- import types.Rpc;
- public class EncryptedPrivateKeyConverterFactory {
- protected final transient Logger logger = getLogger(getClass());
- protected final Function1<EncryptedPrivateKey, Rpc.SingleBytes> domainConverter =
- new Function1<EncryptedPrivateKey, Rpc.SingleBytes>() {
- @Override
- public Rpc.SingleBytes apply(final EncryptedPrivateKey domainEncryptedPrivateKey) {
- if (logger.isTraceEnabled()) {
- logger.trace("Domain encrypted privateKey to convert. with checksum: {}, hexa: {}",
- domainEncryptedPrivateKey, encodeHexa(domainEncryptedPrivateKey.getBytesValue()));
- }
- if (domainEncryptedPrivateKey.getBytesValue().isEmpty()) {
- return Rpc.SingleBytes.newBuilder()
- .setValue(copyFrom(domainEncryptedPrivateKey.getBytesValue())).build();
- }
- final BytesValue withVersion = domainEncryptedPrivateKey.getBytesValue();
- final BytesValue withoutVersion = trimPrefix(withVersion);
- final Rpc.SingleBytes rpcEncryptedPrivateKey =
- Rpc.SingleBytes.newBuilder().setValue(copyFrom(withoutVersion)).build();
- if (logger.isTraceEnabled()) {
- logger.trace("Rpc encrypted private key convert. hexa: {}",
- HexUtils.encode(rpcEncryptedPrivateKey.getValue().toByteArray()));
- }
- return rpcEncryptedPrivateKey;
- }
- };
- protected final Function1<Rpc.SingleBytes, EncryptedPrivateKey> rpcConverter =
- new Function1<Rpc.SingleBytes, EncryptedPrivateKey>() {
- @Override
- public EncryptedPrivateKey apply(final Rpc.SingleBytes rpcEncryptedPrivateKey) {
- if (logger.isTraceEnabled()) {
- logger.trace("Rpc encrypted privateKey to convert. hexa: {}",
- HexUtils.encode(rpcEncryptedPrivateKey.getValue().toByteArray()));
- }
- if (rpcEncryptedPrivateKey.getValue().isEmpty()) {
- return new EncryptedPrivateKey(BytesValue.EMPTY);
- }
- final byte[] withoutVersion = rpcEncryptedPrivateKey.getValue().toByteArray();
- final byte[] withVersion = append(withoutVersion, EncryptedPrivateKeySpec.PREFIX);
- final EncryptedPrivateKey domainEncryptedPrivateKey =
- new EncryptedPrivateKey(of(withVersion));
- if (logger.isTraceEnabled()) {
- logger.trace("Domain encrypted private key converted. with checksum: {}, hexa: {}",
- domainEncryptedPrivateKey, encodeHexa(domainEncryptedPrivateKey.getBytesValue()));
- }
- return domainEncryptedPrivateKey;
- }
- };
- public ModelConverter<EncryptedPrivateKey, Rpc.SingleBytes> create() {
- return new ModelConverter<EncryptedPrivateKey, Rpc.SingleBytes>(domainConverter, rpcConverter);
- }
- }