19
19
import ch .cyberduck .core .RandomStringService ;
20
20
import ch .cyberduck .core .Session ;
21
21
import ch .cyberduck .core .UUIDRandomStringService ;
22
+ import ch .cyberduck .core .cryptomator .AbstractVault ;
22
23
import ch .cyberduck .core .cryptomator .ContentReader ;
23
24
import ch .cyberduck .core .cryptomator .CryptoFilename ;
24
25
import ch .cyberduck .core .cryptomator .CryptorCache ;
36
37
public class CryptoDirectoryV7Provider extends CryptoDirectoryV6Provider {
37
38
private static final Logger log = LogManager .getLogger (CryptoDirectoryV7Provider .class );
38
39
39
- public static final String EXTENSION_REGULAR = ".c9r" ;
40
- public static final String FILENAME_DIRECTORYID = "dir" ;
41
- public static final String DIRECTORY_METADATAFILE = String .format ("%s%s" , FILENAME_DIRECTORYID , EXTENSION_REGULAR );
42
- public static final String BACKUP_FILENAME_DIRECTORYID = "dirid" ;
43
- public static final String BACKUP_DIRECTORY_METADATAFILE = String .format ("%s%s" , BACKUP_FILENAME_DIRECTORYID , EXTENSION_REGULAR );
44
-
45
40
private final CryptoFilename filenameProvider ;
46
41
private final CryptorCache filenameCryptor ;
42
+ private final AbstractVault vault ;
47
43
48
44
private final RandomStringService random
49
45
= new UUIDRandomStringService ();
50
46
51
- public CryptoDirectoryV7Provider (final Path vault , final CryptoFilename filenameProvider , final CryptorCache filenameCryptor ) {
52
- super (vault , filenameProvider , filenameCryptor );
47
+ public CryptoDirectoryV7Provider (final AbstractVault vault , final CryptoFilename filenameProvider , final CryptorCache filenameCryptor ) {
48
+ super (vault . getHome () , filenameProvider , filenameCryptor );
53
49
this .filenameProvider = filenameProvider ;
54
50
this .filenameCryptor = filenameCryptor ;
51
+ this .vault = vault ;
55
52
}
56
53
57
54
@ Override
58
55
public String toEncrypted (final Session <?> session , final byte [] directoryId , final String filename , final EnumSet <Path .Type > type ) throws BackgroundException {
59
- final String ciphertextName = filenameCryptor .encryptFilename (BaseEncoding .base64Url (), filename , directoryId ) + EXTENSION_REGULAR ;
56
+ final String ciphertextName = filenameCryptor .encryptFilename (BaseEncoding .base64Url (), filename , directoryId ) + vault . getRegularFileExtension () ;
60
57
log .debug ("Encrypted filename {} to {}" , filename , ciphertextName );
61
58
return filenameProvider .deflate (session , ciphertextName );
62
59
}
@@ -69,7 +66,7 @@ protected byte[] load(final Session<?> session, final Path directory) throws Bac
69
66
// Read directory id from file
70
67
try {
71
68
log .debug ("Read directory ID for folder {} from {}" , directory , ciphertextName );
72
- final Path metadataFile = new Path (metadataParent , CryptoDirectoryV7Provider . DIRECTORY_METADATAFILE , EnumSet .of (Path .Type .file , Path .Type .encrypted ));
69
+ final Path metadataFile = new Path (metadataParent , vault . getDirectoryMetadataFilename () , EnumSet .of (Path .Type .file , Path .Type .encrypted ));
73
70
return new ContentReader (session ).readBytes (metadataFile );
74
71
}
75
72
catch (NotfoundException e ) {
0 commit comments