AsyncPrivateKeyMethod Class — netty Architecture
Architecture documentation for the AsyncPrivateKeyMethod class in ReferenceCountedOpenSslContext.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD 1f6cde3a_dc11_0f05_71cf_e0c9b1833ddf["AsyncPrivateKeyMethod"] ec821021_8733_8627_194f_15d27e6d1f67["ReferenceCountedOpenSslContext.java"] 1f6cde3a_dc11_0f05_71cf_e0c9b1833ddf -->|defined in| ec821021_8733_8627_194f_15d27e6d1f67 b154f30b_10cd_8bc3_cd2f_4764f8bc4ce9["AsyncPrivateKeyMethod()"] 1f6cde3a_dc11_0f05_71cf_e0c9b1833ddf -->|method| b154f30b_10cd_8bc3_cd2f_4764f8bc4ce9 5a448219_dfe6_af1c_a007_a8506103416d["sign()"] 1f6cde3a_dc11_0f05_71cf_e0c9b1833ddf -->|method| 5a448219_dfe6_af1c_a007_a8506103416d 78c6b453_d8e1_4e66_cdbb_bab17320261f["decrypt()"] 1f6cde3a_dc11_0f05_71cf_e0c9b1833ddf -->|method| 78c6b453_d8e1_4e66_cdbb_bab17320261f
Relationship Graph
Source Code
handler/src/main/java/io/netty/handler/ssl/ReferenceCountedOpenSslContext.java lines 1148–1209
private static final class AsyncPrivateKeyMethod implements AsyncSSLPrivateKeyMethod {
private final Map<Long, ReferenceCountedOpenSslEngine> engines;
private final OpenSslAsyncPrivateKeyMethod keyMethod;
AsyncPrivateKeyMethod(Map<Long, ReferenceCountedOpenSslEngine> engines,
OpenSslAsyncPrivateKeyMethod keyMethod) {
this.engines = engines;
this.keyMethod = keyMethod;
}
@Override
public void sign(long ssl, int signatureAlgorithm, byte[] bytes, ResultCallback<byte[]> resultCallback) {
try {
ReferenceCountedOpenSslEngine engine = retrieveEngine(engines, ssl);
keyMethod.sign(engine, signatureAlgorithm, bytes)
.addListener(new ResultCallbackListener(engine, ssl, resultCallback));
} catch (SSLException e) {
resultCallback.onError(ssl, e);
}
}
@Override
public void decrypt(long ssl, byte[] bytes, ResultCallback<byte[]> resultCallback) {
try {
ReferenceCountedOpenSslEngine engine = retrieveEngine(engines, ssl);
keyMethod.decrypt(engine, bytes)
.addListener(new ResultCallbackListener(engine, ssl, resultCallback));
} catch (SSLException e) {
resultCallback.onError(ssl, e);
}
}
private static final class ResultCallbackListener implements FutureListener<byte[]> {
private final ReferenceCountedOpenSslEngine engine;
private final long ssl;
private final ResultCallback<byte[]> resultCallback;
ResultCallbackListener(ReferenceCountedOpenSslEngine engine, long ssl,
ResultCallback<byte[]> resultCallback) {
this.engine = engine;
this.ssl = ssl;
this.resultCallback = resultCallback;
}
@Override
public void operationComplete(Future<byte[]> future) {
Throwable cause = future.cause();
if (cause == null) {
try {
byte[] result = verifyResult(future.getNow());
resultCallback.onSuccess(ssl, result);
return;
} catch (SignatureException e) {
cause = e;
engine.initHandshakeException(e);
}
}
resultCallback.onError(ssl, cause);
}
}
}
Source
Frequently Asked Questions
What is the AsyncPrivateKeyMethod class?
AsyncPrivateKeyMethod is a class in the netty codebase, defined in handler/src/main/java/io/netty/handler/ssl/ReferenceCountedOpenSslContext.java.
Where is AsyncPrivateKeyMethod defined?
AsyncPrivateKeyMethod is defined in handler/src/main/java/io/netty/handler/ssl/ReferenceCountedOpenSslContext.java at line 1148.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free