コード例 #1
0
 internal static IStrongNameKeyInfo LoadStrongNameKeyData(Stream targetStream, bool @private = true)
 {
     if (@private)
     {
         PrivateKeyData targetData = new PrivateKeyData();
         using (var targetReader = new BinaryReader(targetStream))
             targetData.Read(targetReader);
         var data = targetData.GetData();
         StrongNamePrivateKeyInfo result = new StrongNamePrivateKeyInfo(data.Item3, data.Item2, data.Item1, (int)targetData.header.BitLength);
         return(result);
     }
     else
     {
         PublicKeyData targetData = new PublicKeyData();
         using (var targetReader = new BinaryReader(targetStream))
             targetData.Read(targetReader);
         return(targetData);
     }
 }
コード例 #2
0
 internal static IStrongNameKeyInfo LoadStrongNameKeyData(byte[] data, bool @private = true)
 {
     if (@private)
     {
         using (MemoryStream targetStream = new MemoryStream(data))
         {
             PrivateKeyData targetData = new PrivateKeyData();
             using (var targetReader = new BinaryReader(targetStream))
                 targetData.Read(targetReader);
             var resultData = targetData.GetData();
             StrongNamePrivateKeyInfo result = new StrongNamePrivateKeyInfo(resultData.Item3, resultData.Item2, resultData.Item1, (int)targetData.header.BitLength);
             return(result);
         }
     }
     else
     {
         if (data.SequenceEqual(StandardPublicKey))
         {
             return(StandardPublicKeyStream.StandardPublicKey);
         }
         else if (PublicKeyData.IsDataProperLength(data))
         {
             using (MemoryStream targetStream = new MemoryStream(data))
             {
                 PublicKeyData targetData = new PublicKeyData();
                 using (var targetReader = new BinaryReader(targetStream))
                     targetData.Read(targetReader);
                 return(targetData);
             }
         }
         else
         {
             throw new ArgumentException("publicKey");
         }
     }
 }
コード例 #3
0
 /// <summary>
 /// Creates a new <see cref="LinkedPublicKeyInfo"/> instance
 /// with the owner <paramref name="privateKey"/>.
 /// </summary>
 /// <param name="privateKey">The <see cref="StrongNamePrivateKeyInfo"/>
 /// from which the <see cref="LinkedPublicKeyInfo"/> is derived.</param>
 public LinkedPublicKeyInfo(StrongNamePrivateKeyInfo privateKey)
     : base()
 {
     this.privateKey = privateKey;
 }