All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.amazonaws.encryptionsdk.caching.NullCryptoMaterialsCache Maven / Gradle / Ivy

package com.amazonaws.encryptionsdk.caching;

import com.amazonaws.encryptionsdk.model.DecryptionMaterials;
import com.amazonaws.encryptionsdk.model.EncryptionMaterials;

/**
 * A {@link CryptoMaterialsCache} that doesn't actually cache anything.
 */
public class NullCryptoMaterialsCache implements CryptoMaterialsCache {
    @Override public EncryptCacheEntry getEntryForEncrypt(
            byte[] cacheId,
            final UsageStats usageIncrement
    ) {
        return null;
    }

    @Override public EncryptCacheEntry putEntryForEncrypt(
            byte[] cacheId,
            EncryptionMaterials encryptionMaterials,
            CacheHint hint,
            UsageStats initialUsage
    ) {
        return new EncryptCacheEntry() {
            private final long creationTime = System.currentTimeMillis();

            @Override public synchronized UsageStats getUsageStats() {
                return initialUsage;
            }

            @Override public long getEntryCreationTime() {
                return creationTime;
            }

            @Override public EncryptionMaterials getResult() {
                return encryptionMaterials;
            }
        };
    }

    @Override public DecryptCacheEntry getEntryForDecrypt(
            byte[] cacheId
    ) {
        return null;
    }

    @Override public void putEntryForDecrypt(
            byte[] cacheId, DecryptionMaterials decryptionMaterials, CacheHint hint
    ) {
        // no-op
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy