| void .ctor() | Public+1 flags | — | 0x00 |
| void .ctor(IDigest digest) | Public+1 flags | — | 0x08 |
| void Init(ICipherParameters privParam) | Public+2 flags | — | 0x08 |
| byte[] CalculateKey(int kLen, ICipherParameters pubParam) | Public+2 flags | — | 0x08 |
| Byte[][] CalculateKeyWithConfirmation(int kLen, const byte[]& confirmationTag, ICipherParameters pubParam) | Public+2 flags | — | 0x08 |
| ECPoint CalculateU(SM2KeyExchangePublicParameters otherPub) | 3 flags | | 0x08 |
| byte[] Kdf(ECPoint u, const byte[]& za, const byte[]& zb, int klen) | 3 flags | | 0x08 |
| BigInteger Reduce(BigInteger x) | Private | | 0x08 |
| byte[] S1(IDigest digest, ECPoint u, const byte[]& inner) | Private | | 0x08 |
| byte[] CalculateInnerHash(IDigest digest, ECPoint u, const byte[]& za, const byte[]& zb, ECPoint p1, ECPoint p2) | Private | | 0x08 |
| byte[] S2(IDigest digest, ECPoint u, const byte[]& inner) | Private | | 0x08 |
| byte[] GetZ(IDigest digest, const byte[]& userID, ECPoint pubPoint) | Private | | 0x08 |
| void AddUserID(IDigest digest, const byte[]& userID) | Private | | 0x08 |
| void AddFieldElement(IDigest digest, ECFieldElement v) | Private | | 0x08 |