package com.kryptnostic.kodex.v1.serialization.crypto;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.google.common.base.Function;
import com.kryptnostic.kodex.v1.crypto.ciphers.CryptoService;
import com.kryptnostic.kodex.v1.exceptions.types.SecurityConfigurationException;
import com.kryptnostic.storage.v1.models.EncryptableBlock;
public final class BlockDecrypter implements Function<EncryptableBlock, byte[]> {
private static final Logger logger = LoggerFactory.getLogger( BlockDecrypter.class );
private final CryptoService service;
public BlockDecrypter( CryptoService service ) {
this.service = service;
}
@Override
public byte[] apply( EncryptableBlock input ) {
try {
return service.decryptBytes( input.getBlock() );
} catch ( SecurityConfigurationException e ) {
logger.error( "Unable to decrypt block {}.", input.getIndex() );
return null;
}
}
}