Skip to content

Commit dc05aa4

Browse files
committed
Refactoring in SM2
1 parent 759ddff commit dc05aa4

2 files changed

Lines changed: 12 additions & 0 deletions

File tree

crypto/src/crypto/agreement/SM2KeyExchange.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -269,8 +269,14 @@ private static void AddUserID(IDigest digest, byte[] userID)
269269

270270
private static void AddFieldElement(IDigest digest, ECFieldElement v)
271271
{
272+
#if NETCOREAPP2_1_OR_GREATER || NETSTANDARD2_1_OR_GREATER
273+
Span<byte> buf = stackalloc byte[v.GetEncodedLength()];
274+
v.EncodeTo(buf);
275+
digest.BlockUpdate(buf);
276+
#else
272277
byte[] p = v.GetEncoded();
273278
digest.BlockUpdate(p, 0, p.Length);
279+
#endif
274280
}
275281

276282
private static byte[] CheckUserID(byte[] userID)

crypto/src/crypto/signers/SM2Signer.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -301,8 +301,14 @@ private static void AddUserID(IDigest digest, byte[] userID)
301301

302302
private static void AddFieldElement(IDigest digest, ECFieldElement v)
303303
{
304+
#if NETCOREAPP2_1_OR_GREATER || NETSTANDARD2_1_OR_GREATER
305+
Span<byte> buf = stackalloc byte[v.GetEncodedLength()];
306+
v.EncodeTo(buf);
307+
digest.BlockUpdate(buf);
308+
#else
304309
byte[] p = v.GetEncoded();
305310
digest.BlockUpdate(p, 0, p.Length);
311+
#endif
306312
}
307313

308314
protected virtual BigInteger CalculateE(BigInteger n, byte[] message)

0 commit comments

Comments
 (0)