Пример #1
0
        /// <summary>
        /// Retrieve a parameter set by its enumeration name
        /// </summary>
        ///
        /// <param name="Name">The enumeration name</param>
        ///
        /// <returns>A populated parameter set</returns>
        ///
        /// <exception cref="RLWEException">Thrown if an invalid or unknown parameter name is used.</exception>
        public static RLWEParameters FromName(RLWEParamNames Name)
        {
            switch (Name)
            {
            case RLWEParamNames.N256Q7681:
                return((RLWEParameters)RLWEN256Q7681.Clone());

            case RLWEParamNames.N512Q12289:
                return((RLWEParameters)RLWEN512Q12289.Clone());

            default:
                throw new RLWEException("RLWEParamSets:FromName", "The enumeration name is unknown!", new ArgumentException());
            }
        }
Пример #2
0
        /// <summary>
        /// Retrieve the OId for a parameter set
        /// </summary>
        ///
        /// <param name="Name">The enumeration name</param>
        ///
        /// <returns>The 3 byte OId field</returns>
        ///
        /// <exception cref="RLWEException">Thrown if an invalid or unknown parameter name is used.</exception>
        public static byte[] GetID(RLWEParamNames Name)
        {
            switch (Name)
            {
            case RLWEParamNames.N256Q7681:
                return(new byte[] { 2, 2, 0 });

            case RLWEParamNames.N512Q12289:
                return(new byte[] { 2, 5, 1 });

            default:
                throw new RLWEException("RLWEParamSets:GetID", "The enumeration name is unknown!", new ArgumentException());
            }
        }
Пример #3
0
        /// <summary>
        /// Retrieve the OId for a parameter set
        /// </summary>
        ///
        /// <param name="ParamName">The enumeration name</param>
        ///
        /// <returns>The 4 byte OId field</returns>
        ///
        /// <exception cref="CryptoAsymmetricException">Thrown if an invalid or unknown parameter name is used.</exception>
        public static byte[] GetID(RLWEParamNames ParamName)
        {
            switch (ParamName)
            {
            case RLWEParamNames.N256Q7681:
                return(new byte[] { (byte)AsymmetricEngines.RingLWE, 2, 2, 1 });

            case RLWEParamNames.N512Q12289:
                return(new byte[] { (byte)AsymmetricEngines.RingLWE, 2, 5, 2 });

            default:
                throw new CryptoAsymmetricException("RLWEParamSets:GetID", "The enumeration name is unknown!", new ArgumentException());
            }
        }
Пример #4
0
        /// <summary>
        /// Retrieve a parameter set by its enumeration name
        /// </summary>
        ///
        /// <param name="ParamName">The enumeration name</param>
        ///
        /// <returns>A populated parameter set</returns>
        ///
        /// <exception cref="CryptoAsymmetricException">Thrown if an invalid or unknown parameter name is used.</exception>
        public static RLWEParameters FromName(RLWEParamNames ParamName)
        {
            switch (ParamName)
            {
            case RLWEParamNames.N256Q7681:
                return((RLWEParameters)RLWEN256Q7681.DeepCopy());

            case RLWEParamNames.N512Q12289:
                return((RLWEParameters)RLWEN512Q12289.DeepCopy());

            default:
                throw new CryptoAsymmetricException("RLWEParamSets:FromName", "The enumeration name is unknown!", new ArgumentException());
            }
        }
Пример #5
0
 /// <summary>
 /// Get a serialized RLWEParameters class from a parameter name
 /// </summary>
 ///
 /// <param name="ParamName">The Ring-LWE Parameters set name</param>
 ///
 /// <returns>The serialized RLWEParameters set</returns>
 public static byte[] GetFormatted(RLWEParamNames ParamName)
 {
     return(FromName(ParamName).ToBytes());
 }
Пример #6
0
 /// <summary>
 /// Retrieve the OId for a parameter set
 /// </summary>
 /// 
 /// <param name="Name">The enumeration name</param>
 /// 
 /// <returns>The 4 byte OId field</returns>
 /// 
 /// <exception cref="CryptoAsymmetricException">Thrown if an invalid or unknown parameter name is used.</exception>
 public static byte[] GetID(RLWEParamNames Name)
 {
     switch (Name)
     {
         case RLWEParamNames.N256Q7681:
             return new byte[] { 3, 2, 2, 1 };
         case RLWEParamNames.N512Q12289:
             return new byte[] { 3, 2, 5, 2 };
         default:
             throw new CryptoAsymmetricException("RLWEParamSets:GetID", "The enumeration name is unknown!", new ArgumentException());
     }
 }
Пример #7
0
 /// <summary>
 /// Retrieve a parameter set by its enumeration name
 /// </summary>
 /// 
 /// <param name="Name">The enumeration name</param>
 /// 
 /// <returns>A populated parameter set</returns>
 /// 
 /// <exception cref="CryptoAsymmetricException">Thrown if an invalid or unknown parameter name is used.</exception>
 public static RLWEParameters FromName(RLWEParamNames Name)
 {
     switch (Name)
     {
         case RLWEParamNames.N256Q7681:
             return (RLWEParameters)RLWEN256Q7681.DeepCopy();
         case RLWEParamNames.N512Q12289:
             return (RLWEParameters)RLWEN512Q12289.DeepCopy();
         default:
             throw new CryptoAsymmetricException("RLWEParamSets:FromName", "The enumeration name is unknown!", new ArgumentException());
     }
 }