Skip to content

Commit

Permalink
Refactoring (reduce allocations)
Browse files Browse the repository at this point in the history
  • Loading branch information
peterdettman committed Apr 29, 2024
1 parent d279409 commit 3d2e97b
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 15 deletions.
13 changes: 7 additions & 6 deletions tls/src/main/java/org/bouncycastle/jsse/provider/JsseUtils.java
Original file line number Diff line number Diff line change
Expand Up @@ -156,16 +156,17 @@ static String getPeerReport(ProvTlsManager manager)
return peerHost + ":" + peerPortStr;
}

static String getSignatureAlgorithmsReport(String title, List<SignatureSchemeInfo> signatureSchemes)
static String getSignatureAlgorithmsReport(String title, Iterable<SignatureSchemeInfo> signatureSchemes)
{
String[] names = SignatureSchemeInfo.getJcaSignatureAlgorithmsBC(signatureSchemes);

StringBuilder sb = new StringBuilder(title);
sb.append(':');
for (String name : names)
if (signatureSchemes != null)
{
sb.append(' ');
sb.append(name);
for (SignatureSchemeInfo signatureScheme : signatureSchemes)
{
sb.append(' ');
sb.append(signatureScheme.getJcaSignatureAlgorithmBC());
}
}
return sb.toString();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -300,35 +300,37 @@ static PerContext createPerContext(boolean isFipsContext, JcaTlsCrypto crypto,
return new PerContext(index, candidatesClient, candidatesServer);
}

static String[] getJcaSignatureAlgorithms(Collection<SignatureSchemeInfo> infos)
private static String[] getJcaSignatureAlgorithms(Collection<SignatureSchemeInfo> infos)
{
if (null == infos)
{
return TlsUtils.EMPTY_STRINGS;
}

ArrayList<String> result = new ArrayList<String>();
String[] result = new String[infos.size()];
int resultPos = 0;
for (SignatureSchemeInfo info : infos)
{
// TODO The two kinds of PSS signature scheme can give duplicates here
result.add(info.getJcaSignatureAlgorithm());
result[resultPos++] = info.getJcaSignatureAlgorithm();
}
return result.toArray(TlsUtils.EMPTY_STRINGS);
return result;
}

static String[] getJcaSignatureAlgorithmsBC(Collection<SignatureSchemeInfo> infos)
private static String[] getJcaSignatureAlgorithmsBC(Collection<SignatureSchemeInfo> infos)
{
if (null == infos)
{
return TlsUtils.EMPTY_STRINGS;
}

ArrayList<String> result = new ArrayList<String>();
String[] result = new String[infos.size()];
int resultPos = 0;
for (SignatureSchemeInfo info : infos)
{
result.add(info.getJcaSignatureAlgorithmBC());
result[resultPos++] = info.getJcaSignatureAlgorithmBC();
}
return result.toArray(TlsUtils.EMPTY_STRINGS);
return result;
}

static SignatureAndHashAlgorithm getSignatureAndHashAlgorithm(int signatureScheme)
Expand All @@ -341,7 +343,8 @@ static SignatureAndHashAlgorithm getSignatureAndHashAlgorithm(int signatureSchem
return SignatureScheme.getSignatureAndHashAlgorithm(signatureScheme);
}

static Vector<SignatureAndHashAlgorithm> getSignatureAndHashAlgorithms(List<SignatureSchemeInfo> signatureSchemeInfos)
private static Vector<SignatureAndHashAlgorithm> getSignatureAndHashAlgorithms(
Collection<SignatureSchemeInfo> signatureSchemeInfos)
{
// TODO[tls13] Actually should return empty for empty?
if (null == signatureSchemeInfos || signatureSchemeInfos.isEmpty())
Expand Down

0 comments on commit 3d2e97b

Please sign in to comment.