dlech.SshAgentLib.PemKeyFormatter.Deserialize C# (CSharp) Method

Deserialize() public method

public Deserialize ( Stream aStream ) : object
aStream Stream
return object
        public override object Deserialize(Stream aStream)
        {
            /* check for required parameters */
              if (aStream == null) {
            throw new ArgumentNullException("aStream");
              }
              PasswordFinder pwFinder = null;
              if (GetPassphraseCallbackMethod != null) {
            pwFinder = new PasswordFinder(GetPassphraseCallbackMethod);
              }
              try {
            StreamReader streamReader = new StreamReader(aStream);
            PemReader reader = new PemReader(streamReader, pwFinder);
            object data = reader.ReadObject();

            if (data is AsymmetricCipherKeyPair) {
              return new SshKey(SshVersion.SSH2, (AsymmetricCipherKeyPair)data);
            } else {
              throw new KeyFormatterException("bad data");
            }
              } catch (PasswordException ex) {
            if (GetPassphraseCallbackMethod == null) {
              throw new CallbackNullException();
            }
            throw new KeyFormatterException("see inner exception", ex);
              } catch (KeyFormatterException) {
            throw;
              } catch (Exception ex) {
            throw new KeyFormatterException("see inner exception", ex);
              }
        }

Usage Example

Exemplo n.º 1
0
 public void TestDeserializeDsaFromPrivate()
 {
     var formatter = new PemKeyFormatter();
     var key = formatter.Deserialize(Resources.dsa_1);
     Assert.That(key.Version, Is.EqualTo(SshVersion.SSH2));
     Assert.That(key.Algorithm, Is.EqualTo(PublicKeyAlgorithm.SSH_DSS));
     var publicKey = (DsaPublicKeyParameters)key.GetPublicKeyParameters();
     var privateKey = (DsaPrivateKeyParameters)key.GetPrivateKeyParameters();
     var param_g = new BigInteger(Resources.dsa_1_param_g.Trim(), 16);
     var param_priv = new BigInteger(Resources.dsa_1_param_priv.Trim(), 16);
     var param_pub = new BigInteger(Resources.dsa_1_param_pub.Trim(), 16);
     Assert.That(privateKey.Parameters.G, Is.EqualTo(param_g));
     Assert.That(privateKey.X, Is.EqualTo(param_priv));
     Assert.That(publicKey.Y, Is.EqualTo(param_pub));
 }
All Usage Examples Of dlech.SshAgentLib.PemKeyFormatter::Deserialize