Skip to content

Commit 7b548ae

Browse files
committed
also add hasIdentity to android to be consistent
1 parent d3401bb commit 7b548ae

File tree

2 files changed

+34
-0
lines changed

2 files changed

+34
-0
lines changed

android/src/main/java/com/asterinet/react/tcpsocket/SSLCertificateHelper.java

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,30 @@ static SSLServerSocketFactory createServerSocketFactory(Context context, @NonNul
8080
return sslContext.getServerSocketFactory();
8181
}
8282

83+
static boolean hasIdentity(ReadableMap options) {
84+
boolean hasId = false;
85+
try {
86+
final String keystoreName = options.hasKey("androidKeyStore") ?
87+
options.getString("androidKeyStore") : KeyStore.getDefaultType();
88+
final String keyAlias = options.hasKey("keyAlias") ?
89+
options.getString("keyAlias") : "";
90+
91+
if (keyAlias.isEmpty()) {
92+
return false;
93+
}
94+
95+
// Get keystore instance
96+
KeyStore keyStore = KeyStore.getInstance(keystoreName);
97+
keyStore.load(null, null);
98+
99+
// Check if key entry exists with its certificate chain
100+
hasId = keyStore.isKeyEntry(keyAlias);
101+
return hasId;
102+
} catch (Exception e) {
103+
return false;
104+
}
105+
}
106+
83107
public static PrivateKey getPrivateKeyFromPEM(InputStream keyStream) {
84108
try (PemReader pemReader = new PemReader(new InputStreamReader(keyStream))) {
85109
PemObject pemObject = pemReader.readPemObject();

android/src/main/java/com/asterinet/react/tcpsocket/TcpSocketModule.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -384,6 +384,16 @@ private TcpSocketServer getTcpServer(final int id) {
384384
return (TcpSocketServer) socket;
385385
}
386386

387+
@SuppressWarnings("unused")
388+
@ReactMethod
389+
public void hasIdentity(@NonNull final ReadableMap options, Promise promise) {
390+
try {
391+
promise.resolve(SSLCertificateHelper.hasIdentity(options));
392+
} catch (Exception e) {
393+
promise.reject(e);
394+
}
395+
}
396+
387397
@SuppressWarnings("unused")
388398
@ReactMethod
389399
public void getPeerCertificate(final int cId, Promise promise) {

0 commit comments

Comments
 (0)