docs: private static byte[] bigIntToFixexLengthBytes(BigInteger rOrS) {
  		// for sm2p256v1, n is 00fffffffeffffffffffffffffffffffff7203df6b21c6052b53bbf40939d54123,
  		// r and s are the result of mod n, so they should be less than n and have length<=32
  		byte[] rs = rOrS.toByteArray();
  		if (rs.length == RS_LEN) {
  			return rs;
  		} else if (rs.length == RS_LEN + 1 && rs[0] == 0) {
  			return Arrays.copyOfRange(rs, 1, RS_LEN + 1);
  		} else if (rs.length < RS_LEN) {
  			byte[] result = new byte[RS_LEN];
  			Arrays.fill(result, (byte) 0);
  			System.arraycopy(rs, 0, result, RS_LEN - rs.length, rs.length);
  			return result;
  		} else {
  			throw new CryptoException("Error rs: {}", Hex.toHexString(rs));
  		}
  	}