package no.ntnu.item.csv.csvobject; import javax.crypto.SecretKey; import no.ntnu.item.cryptoutil.Cryptoutil; import no.ntnu.item.csv.capability.Capability; import no.ntnu.item.csv.capability.CapabilityImpl; import no.ntnu.item.csv.capability.CapabilityType; import org.junit.Assert; import org.junit.Before; import org.junit.Test; public class CSVFolderTest { private CSVFolder newFolder; @Before public void setUp() { this.newFolder = new CSVFolder(); } @Test public void testCapabilityGeneration() { Capability cap = this.newFolder.getCapability(); Assert.assertEquals(CapabilityType.RW, cap.getType()); Assert.assertNotNull(cap.getStorageIndex()); Assert.assertEquals(Cryptoutil.SYM_SIZE / 8, cap.getVerificationKey().length); Assert.assertEquals(Cryptoutil.SYM_SIZE / 8, cap.getKey().length); } @Test public void testEncryption() { SecretKey key = Cryptoutil.generateSymmetricKey(); Capability cap = new CapabilityImpl(CapabilityType.RO, key.getEncoded(), null, false); this.newFolder.addContent("Hallo", cap); this.newFolder.upload(); Assert.assertNotNull(this.newFolder.getCipherText()); } @Test public void testDecryption() { testEncryption(); CSVFolder decFolder = new CSVFolder(this.newFolder.getCapability()); decFolder.download(this.newFolder.upload()); Assert.assertTrue(decFolder.getContents().containsKey("Hallo")); Assert.assertTrue(decFolder.isValid()); } @Test public void testSigningOfInitial() { testEncryption(); Assert.assertTrue(this.newFolder.isValid()); } }