本文整理汇总了C#中Mpir.NET.mpz_t.Power方法的典型用法代码示例。如果您正苦于以下问题:C# mpz_t.Power方法的具体用法?C# mpz_t.Power怎么用?C# mpz_t.Power使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Mpir.NET.mpz_t
的用法示例。
在下文中一共展示了mpz_t.Power方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: HandleResponse
/// <summary>
/// Generates the key after a response is received.
/// </summary>
/// <param name="response">The string representation of the response.</param>
public void HandleResponse(byte[] response)
{
var currentPlatform = OSCheck.RunningPlatform ();
if (currentPlatform == OSCheck.Platform.Mac) {
throw new PlatformNotSupportedException ("Mac OSX is not a supported operating system for this.");
}
if (currentPlatform == OSCheck.Platform.Windows) {
var B = new mpz_t (response, 1);
S = B.Power (a);
S = (S as mpz_t).Mod ((p as mpz_t));
W_GetKeyData ();
} else if (currentPlatform == OSCheck.Platform.Linux) {
var B = new Integer (response);
S = B.Pow (a);
S %= p;
L_GetKeyData ();
}
}
示例2: GenerateResponse
/// <summary>
/// Generate a response packet.
/// </summary>
/// <param name="request">The string representation of the request.</param>
/// <returns></returns>
public byte[] GenerateResponse(byte[] request)
{
var currentPlatform = OSCheck.RunningPlatform ();
if (currentPlatform == OSCheck.Platform.Mac) {
throw new PlatformNotSupportedException ("Mac OSX is not a supported operating system for this.");
}
var instream = new MemoryStream (request);
var gData = DataUtility.ReadBytesFromStream (instream);
var pData = DataUtility.ReadBytesFromStream (instream);
var AData = DataUtility.ReadBytesFromStream (instream);
byte[] BData = null;
if (currentPlatform == OSCheck.Platform.Windows) {
g = new mpz_t (gData, 1);
p = new mpz_t (pData, 1);
var A = new mpz_t (AData, 1);
// Generate the parameters.
a = RandomGenerator.Next (bytes);
var B = g.Power (a);
B = B.Mod (p);
// Get Raw IntX Data
BData = B.ToByteArray (1);
// Got the key!!! HOORAY!
S = A.Power (a);
S = S.Mod (p);
W_GetKeyData ();
} else if (currentPlatform == OSCheck.Platform.Linux) {
g = new Integer ();
g.FromBytes (gData);
p = new Integer ();
p.FromBytes (pData);
var A = new Integer (AData);
// Generate the parameters.
a = RandomGenerator.Next (bytes);
var B = g.Pow (a);
B %= p;
// Get Raw IntX Data
BData = B.ToBytes ();
// Got the key!!! HOORAY!
S = A.Pow (a);
S %= p;
L_GetKeyData ();
}
return BData;
}