/// <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()); } }
/// <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()); } }
/// <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()); } }
/// <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()); } }
/// <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()); }
/// <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()); } }
/// <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()); } }