SerializeECPoint() public static method

public static SerializeECPoint ( byte ecPointFormats, ECPoint point ) : byte[]
ecPointFormats byte
point Org.BouncyCastle.Math.EC.ECPoint
return byte[]
        public static void WriteExplicitECParameters(byte[] ecPointFormats, ECDomainParameters ecParameters, Stream output)
        {
            ECCurve curve = ecParameters.Curve;

            if (ECAlgorithms.IsFpCurve(curve))
            {
                TlsUtilities.WriteUint8(1, output);
                TlsEccUtilities.WriteECParameter(curve.Field.Characteristic, output);
            }
            else
            {
                if (!ECAlgorithms.IsF2mCurve(curve))
                {
                    throw new ArgumentException("'ecParameters' not a known curve type");
                }
                IPolynomialExtensionField polynomialExtensionField = (IPolynomialExtensionField)curve.Field;
                int[] exponentsPresent = polynomialExtensionField.MinimalPolynomial.GetExponentsPresent();
                TlsUtilities.WriteUint8(2, output);
                int i = exponentsPresent[exponentsPresent.Length - 1];
                TlsUtilities.CheckUint16(i);
                TlsUtilities.WriteUint16(i, output);
                if (exponentsPresent.Length == 3)
                {
                    TlsUtilities.WriteUint8(1, output);
                    TlsEccUtilities.WriteECExponent(exponentsPresent[1], output);
                }
                else
                {
                    if (exponentsPresent.Length != 5)
                    {
                        throw new ArgumentException("Only trinomial and pentomial curves are supported");
                    }
                    TlsUtilities.WriteUint8(2, output);
                    TlsEccUtilities.WriteECExponent(exponentsPresent[1], output);
                    TlsEccUtilities.WriteECExponent(exponentsPresent[2], output);
                    TlsEccUtilities.WriteECExponent(exponentsPresent[3], output);
                }
            }
            TlsEccUtilities.WriteECFieldElement(curve.A, output);
            TlsEccUtilities.WriteECFieldElement(curve.B, output);
            TlsUtilities.WriteOpaque8(TlsEccUtilities.SerializeECPoint(ecPointFormats, ecParameters.G), output);
            TlsEccUtilities.WriteECParameter(ecParameters.N, output);
            TlsEccUtilities.WriteECParameter(ecParameters.H, output);
        }
 public static void WriteECPoint(byte[] ecPointFormats, ECPoint point, Stream output)
 {
     TlsUtilities.WriteOpaque8(TlsEccUtilities.SerializeECPoint(ecPointFormats, point), output);
 }
 public static byte[] SerializeECPublicKey(byte[] ecPointFormats, ECPublicKeyParameters keyParameters)
 {
     return(TlsEccUtilities.SerializeECPoint(ecPointFormats, keyParameters.Q));
 }