Skip to content

Commit 99acba1

Browse files
authored
update to new keychain api (#75)
1 parent 6439669 commit 99acba1

File tree

4 files changed

+11
-29
lines changed

4 files changed

+11
-29
lines changed

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
<project.jdk.version>24</project.jdk.version>
3333

3434
<!-- runtime dependencies -->
35-
<api.version>1.5.1</api.version>
35+
<api.version>1.6.0</api.version>
3636
<slf4j.version>2.0.17</slf4j.version>
3737

3838
<!-- test dependencies -->

src/main/java/org/cryptomator/macos/keychain/MacSystemKeychainAccess.java

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
package org.cryptomator.macos.keychain;
22

3+
import org.cryptomator.integrations.common.LocalizedDisplayName;
34
import org.cryptomator.integrations.common.OperatingSystem;
45
import org.cryptomator.integrations.common.Priority;
56
import org.cryptomator.integrations.keychain.KeychainAccessException;
67
import org.cryptomator.integrations.keychain.KeychainAccessProvider;
7-
import org.cryptomator.macos.common.Localization;
88

99
/**
1010
* Stores passwords in the macOS system keychain.
@@ -14,6 +14,7 @@
1414
*/
1515
@Priority(1000)
1616
@OperatingSystem(OperatingSystem.Value.MAC)
17+
@LocalizedDisplayName(bundle = "MacIntegrationsBundle", key = "org.cryptomator.macos.keychain.displayName")
1718
public class MacSystemKeychainAccess implements KeychainAccessProvider {
1819

1920
private static final String SERVICE_NAME = System.getProperty("cryptomator.integrationsMac.keychainServiceName", "Cryptomator");
@@ -29,21 +30,11 @@ public MacSystemKeychainAccess() {
2930
this.keychain = keychain;
3031
}
3132

32-
@Override
33-
public String displayName() {
34-
return Localization.get().getString("org.cryptomator.macos.keychain.displayName");
35-
}
36-
3733
@Override
3834
public void storePassphrase(String key, String displayName, CharSequence passphrase) throws KeychainAccessException {
3935
keychain.storePassword(SERVICE_NAME, key, passphrase, false);
4036
}
4137

42-
@Override
43-
public void storePassphrase(String key, String displayName, CharSequence passphrase, boolean requireOsAuthentication) throws KeychainAccessException {
44-
keychain.storePassword(SERVICE_NAME, key, passphrase, requireOsAuthentication);
45-
}
46-
4738
@Override
4839
public char[] loadPassphrase(String key) {
4940
return keychain.loadPassword(SERVICE_NAME, key);

src/main/java/org/cryptomator/macos/keychain/TouchIdKeychainAccess.java

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
package org.cryptomator.macos.keychain;
22

3+
import org.cryptomator.integrations.common.LocalizedDisplayName;
34
import org.cryptomator.integrations.common.OperatingSystem;
45
import org.cryptomator.integrations.common.Priority;
56
import org.cryptomator.integrations.keychain.KeychainAccessException;
67
import org.cryptomator.integrations.keychain.KeychainAccessProvider;
7-
import org.cryptomator.macos.common.Localization;
88

99
/**
1010
* Stores passwords in the macOS system keychain. Requires an authenticated user to do so.
@@ -15,6 +15,7 @@
1515
*/
1616
@Priority(1010)
1717
@OperatingSystem(OperatingSystem.Value.MAC)
18+
@LocalizedDisplayName(bundle = "MacIntegrationsBundle", key = "org.cryptomator.macos.keychain.touchIdDisplayName")
1819
public class TouchIdKeychainAccess implements KeychainAccessProvider {
1920

2021
private static final String SERVICE_NAME = System.getProperty("cryptomator.integrationsMac.keychainServiceName", "Cryptomator");
@@ -30,21 +31,11 @@ public TouchIdKeychainAccess() {
3031
this.keychain = keychain;
3132
}
3233

33-
@Override
34-
public String displayName() {
35-
return Localization.get().getString("org.cryptomator.macos.keychain.touchIdDisplayName");
36-
}
37-
3834
@Override
3935
public void storePassphrase(String key, String displayName, CharSequence passphrase) throws KeychainAccessException {
4036
keychain.storePassword(SERVICE_NAME, key, passphrase, true);
4137
}
4238

43-
@Override
44-
public void storePassphrase(String key, String displayName, CharSequence passphrase, boolean requireOsAuthentication) throws KeychainAccessException {
45-
keychain.storePassword(SERVICE_NAME, key, passphrase, requireOsAuthentication);
46-
}
47-
4839
@Override
4940
public char[] loadPassphrase(String key) {
5041
return keychain.loadPassword(SERVICE_NAME, key);

src/test/java/org/cryptomator/macos/keychain/MacSystemKeychainAccessTest.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,15 +21,15 @@ public void setup() {
2121
@Test
2222
@DisplayName("displayName() does not return default name")
2323
public void testDisplayName() {
24-
var displayName = keychainAccess.displayName();
24+
var displayName = keychainAccess.getName();
2525

2626
Assertions.assertNotEquals(keychainAccess.getClass().getSimpleName(), displayName);
2727
}
2828

2929
@Test
3030
@DisplayName("storePassphrase() succeeds")
3131
public void testStoreSuccess() throws KeychainAccessException {
32-
keychainAccess.storePassphrase("key", "pass");
32+
keychainAccess.storePassphrase("key", "name", "pass");
3333

3434
Mockito.verify(keychain).storePassword("Cryptomator", "key", "pass", false);
3535
}
@@ -41,7 +41,7 @@ public void testStoreError() throws KeychainAccessException {
4141
Mockito.doThrow(e).when(keychain).storePassword(Mockito.eq("Cryptomator"), Mockito.any(), Mockito.any(), Mockito.eq(false));
4242

4343
KeychainAccessException thrown = Assertions.assertThrows(KeychainAccessException.class, () -> {
44-
keychainAccess.storePassphrase("key", "", "pass", false);
44+
keychainAccess.storePassphrase("key", "", "pass");
4545
});
4646
Assertions.assertSame(thrown, e);
4747
}
@@ -91,7 +91,7 @@ public void testDeleteError() throws KeychainAccessException {
9191
public void testChangeSuccess() throws KeychainAccessException {
9292
Mockito.when(keychain.deletePassword("Cryptomator", "key")).thenReturn(true);
9393

94-
keychainAccess.changePassphrase("key", "newpass");
94+
keychainAccess.changePassphrase("key", "name", "newpass");
9595

9696
Mockito.verify(keychain).storePassword("Cryptomator", "key", "newpass", false);
9797
}
@@ -101,7 +101,7 @@ public void testChangeSuccess() throws KeychainAccessException {
101101
public void testChangeNotFound() throws KeychainAccessException {
102102
Mockito.when(keychain.deletePassword("Cryptomator", "key")).thenReturn(false);
103103

104-
keychainAccess.changePassphrase("key", "newpass");
104+
keychainAccess.changePassphrase("key", "name", "newpass");
105105

106106
Mockito.verify(keychain, Mockito.never()).storePassword("Cryptomator", "key", "newpass", false);
107107
}
@@ -113,7 +113,7 @@ public void testChangeError() throws KeychainAccessException {
113113
Mockito.doThrow(e).when(keychain).deletePassword(Mockito.eq("Cryptomator"), Mockito.any());
114114

115115
KeychainAccessException thrown = Assertions.assertThrows(KeychainAccessException.class, () -> {
116-
keychainAccess.changePassphrase("key", "newpass");
116+
keychainAccess.changePassphrase("key", "name", "newpass");
117117
});
118118
Assertions.assertSame(thrown, e);
119119
}

0 commit comments

Comments
 (0)