/// <summary> /// Initializes a new instance of the <see cref="GpgApi.GpgChangeOwnerTrust"/> class. /// </summary> /// <param name="keyId"></param> /// <param name="ownerTrust"></param> /// <exception cref="System.ArgumentNullException"/> public GpgChangeOwnerTrust(KeyId keyId, KeyOwnerTrust ownerTrust) { if (keyId == null) throw new ArgumentNullException("keyId"); KeyId = keyId; OwnerTrust = ownerTrust; }
/// <summary> /// Initializes a new instance of the <see cref="GpgApi.GpgChangeOwnerTrust"/> class. /// </summary> /// <param name="keyId"></param> /// <param name="ownerTrust"></param> /// <exception cref="System.ArgumentNullException"/> public GpgChangeOwnerTrust(KeyId keyId, KeyOwnerTrust ownerTrust) { if (keyId == null) { throw new ArgumentNullException("keyId"); } KeyId = keyId; OwnerTrust = ownerTrust; }
public static Int32 ToId(KeyOwnerTrust trust) { switch (trust) { case KeyOwnerTrust.Ultimate: return(5); case KeyOwnerTrust.Full: return(4); case KeyOwnerTrust.Marginal: return(3); case KeyOwnerTrust.None: return(2); default: return(2); } }
} // Confiance en cette clé (peut-être récupéré à partir du trousseau de clés) /// <summary> /// Initializes a new instance of the <see cref="GpgApi.GpgDecrypt"/> class. /// </summary> /// <param name="encryptedFileName"></param> /// <param name="decryptedFileName"></param> /// <exception cref="System.ArgumentNullException"/> public GpgDecrypt(String encryptedFileName, String decryptedFileName) { if (encryptedFileName == null) { throw new ArgumentNullException("encryptedFileName"); } if (decryptedFileName == null) { throw new ArgumentNullException("decryptedFileName"); } EncryptedFileName = encryptedFileName; DecryptedFileName = decryptedFileName; DecryptedDataLength = 0; DecryptedDataType = DataType.None; EncryptionDateTime = DateTime.MinValue; OriginalFileName = null; IsSigned = false; IsGoodSignature = false; SignatureDateTime = DateTime.MinValue; SignatureKeyId = null; SignatureTrust = KeyOwnerTrust.None; }
// internal AND protected internal override GpgInterfaceResult ProcessLine(String line) { if (!GNUCheck(ref line)) return GpgInterfaceResult.Success; switch (GetKeyword(ref line)) { case GpgKeyword.ENC_TO: { String[] parts = line.Split(' '); if (parts[0] != _last_enc_to) { _last_enc_to = parts[0]; ResetTries(); } break; } case GpgKeyword.NEED_PASSPHRASE_SYM: { _isSymmetric = true; break; } case GpgKeyword.NEED_PASSPHRASE: { String[] parts = line.Split(' '); _keyId = parts[1]; _isSymmetric = false; break; } case GpgKeyword.BEGIN_DECRYPTION: return new GpgInterfaceResult(GpgInterfaceStatus.Processing, GpgInterfaceMessage.BeginDecryption); case GpgKeyword.END_DECRYPTION: return new GpgInterfaceResult(GpgInterfaceStatus.Processing, GpgInterfaceMessage.EndDecryption); case GpgKeyword.DECRYPTION_OKAY: return new GpgInterfaceResult(GpgInterfaceStatus.Processing, GpgInterfaceMessage.DecryptionOk); case GpgKeyword.DECRYPTION_FAILED: return _googPassphrase ? new GpgInterfaceResult(GpgInterfaceStatus.Error, GpgInterfaceMessage.DecryptionFailed) : GpgInterfaceResult.BadPassphrase; case GpgKeyword.PLAINTEXT_LENGTH: { DecryptedDataLength = Int32.Parse(line, CultureInfo.InvariantCulture); break; } case GpgKeyword.PLAINTEXT: { String[] parts = line.Split(' '); String datatype = parts[0]; switch (datatype) { case "62": DecryptedDataType = DataType.Binary; break; case "74": DecryptedDataType = DataType.Text; break; case "75": DecryptedDataType = DataType.Utf8Text; break; } EncryptionDateTime = Utils.ConvertTimestamp(Double.Parse(parts[1], CultureInfo.InvariantCulture)); OriginalFileName = Uri.UnescapeDataString(parts[2]); break; } case GpgKeyword.GET_HIDDEN: { if (String.Equals(line, "passphrase.enter", StringComparison.Ordinal)) { SecureString password = InternalAskPassphrase(_keyId, false, _isSymmetric); if (IsNullOrEmpty(password)) return GpgInterfaceResult.UserAbort; WritePassword(password); } break; } case GpgKeyword.GOOD_PASSPHRASE: { _googPassphrase = true; break; } case GpgKeyword.GOODSIG: { IsSigned = true; IsGoodSignature = true; SignatureKeyId = new KeyId(line.Split(' ')[0]); break; } case GpgKeyword.BADSIG: { IsSigned = true; IsGoodSignature = false; SignatureKeyId = new KeyId(line.Split(' ')[0]); break; } case GpgKeyword.VALIDSIG: { String[] parts = line.Split(' '); String datetime = parts[2]; if (datetime.Contains("T")) { // ISO 8601 SignatureDateTime = DateTime.ParseExact(datetime, "s", CultureInfo.InvariantCulture); } else SignatureDateTime = Utils.ConvertTimestamp(Double.Parse(datetime, CultureInfo.InvariantCulture)); break; } case GpgKeyword.NO_PUBKEY: return new GpgInterfaceResult(GpgInterfaceStatus.Error, GpgInterfaceMessage.NoPublicKey, line); case GpgKeyword.NO_SECKEY: { if (_googPassphrase) return GpgInterfaceResult.Success; else return new GpgInterfaceResult(GpgInterfaceStatus.Error, GpgInterfaceMessage.NoSecretKey, line); } case GpgKeyword.NODATA: case GpgKeyword.UNEXPECTED: return new GpgInterfaceResult(GpgInterfaceStatus.Error, GpgInterfaceMessage.DataError); case GpgKeyword.TRUST_UNDEFINED: case GpgKeyword.TRUST_NEVER: { SignatureTrust = KeyOwnerTrust.None; break; } case GpgKeyword.TRUST_MARGINAL: { SignatureTrust = KeyOwnerTrust.Marginal; break; } case GpgKeyword.TRUST_FULLY: { SignatureTrust = KeyOwnerTrust.Full; break; } case GpgKeyword.TRUST_ULTIMATE: { SignatureTrust = KeyOwnerTrust.Ultimate; break; } case GpgKeyword.GET_BOOL: { if (String.Equals(line, "openfile.overwrite.okay", StringComparison.Ordinal)) WriteLine("YES"); break; } } return GpgInterfaceResult.Success; }
// internal AND protected internal override GpgInterfaceResult ProcessLine(String line) { if (!GNUCheck(ref line)) { return(GpgInterfaceResult.Success); } switch (GetKeyword(ref line)) { case GpgKeyword.ENC_TO: { String[] parts = line.Split(' '); if (parts[0] != _last_enc_to) { _last_enc_to = parts[0]; ResetTries(); } break; } case GpgKeyword.NEED_PASSPHRASE_SYM: { _isSymmetric = true; break; } case GpgKeyword.NEED_PASSPHRASE: { String[] parts = line.Split(' '); _keyId = parts[1]; _isSymmetric = false; break; } case GpgKeyword.BEGIN_DECRYPTION: return(new GpgInterfaceResult(GpgInterfaceStatus.Processing, GpgInterfaceMessage.BeginDecryption)); case GpgKeyword.END_DECRYPTION: return(new GpgInterfaceResult(GpgInterfaceStatus.Processing, GpgInterfaceMessage.EndDecryption)); case GpgKeyword.DECRYPTION_OKAY: return(new GpgInterfaceResult(GpgInterfaceStatus.Processing, GpgInterfaceMessage.DecryptionOk)); case GpgKeyword.DECRYPTION_FAILED: return(_googPassphrase ? new GpgInterfaceResult(GpgInterfaceStatus.Error, GpgInterfaceMessage.DecryptionFailed) : GpgInterfaceResult.BadPassphrase); case GpgKeyword.PLAINTEXT_LENGTH: { DecryptedDataLength = Int32.Parse(line, CultureInfo.InvariantCulture); break; } case GpgKeyword.PLAINTEXT: { String[] parts = line.Split(' '); String datatype = parts[0]; switch (datatype) { case "62": DecryptedDataType = DataType.Binary; break; case "74": DecryptedDataType = DataType.Text; break; case "75": DecryptedDataType = DataType.Utf8Text; break; } EncryptionDateTime = Utils.ConvertTimestamp(Double.Parse(parts[1], CultureInfo.InvariantCulture)); OriginalFileName = Uri.UnescapeDataString(parts[2]); break; } case GpgKeyword.GET_HIDDEN: { if (String.Equals(line, "passphrase.enter", StringComparison.Ordinal)) { SecureString password = InternalAskPassphrase(_keyId, false, _isSymmetric); if (IsNullOrEmpty(password)) { return(GpgInterfaceResult.UserAbort); } WritePassword(password); } break; } case GpgKeyword.GOOD_PASSPHRASE: { _googPassphrase = true; break; } case GpgKeyword.GOODSIG: { IsSigned = true; IsGoodSignature = true; SignatureKeyId = new KeyId(line.Split(' ')[0]); break; } case GpgKeyword.BADSIG: { IsSigned = true; IsGoodSignature = false; SignatureKeyId = new KeyId(line.Split(' ')[0]); break; } case GpgKeyword.VALIDSIG: { String[] parts = line.Split(' '); String datetime = parts[2]; if (datetime.Contains("T")) { // ISO 8601 SignatureDateTime = DateTime.ParseExact(datetime, "s", CultureInfo.InvariantCulture); } else { SignatureDateTime = Utils.ConvertTimestamp(Double.Parse(datetime, CultureInfo.InvariantCulture)); } break; } case GpgKeyword.NO_PUBKEY: return(new GpgInterfaceResult(GpgInterfaceStatus.Error, GpgInterfaceMessage.NoPublicKey, line)); case GpgKeyword.NO_SECKEY: { if (_googPassphrase) { return(GpgInterfaceResult.Success); } else { return(new GpgInterfaceResult(GpgInterfaceStatus.Error, GpgInterfaceMessage.NoSecretKey, line)); } } case GpgKeyword.NODATA: case GpgKeyword.UNEXPECTED: return(new GpgInterfaceResult(GpgInterfaceStatus.Error, GpgInterfaceMessage.DataError)); case GpgKeyword.TRUST_UNDEFINED: case GpgKeyword.TRUST_NEVER: { SignatureTrust = KeyOwnerTrust.None; break; } case GpgKeyword.TRUST_MARGINAL: { SignatureTrust = KeyOwnerTrust.Marginal; break; } case GpgKeyword.TRUST_FULLY: { SignatureTrust = KeyOwnerTrust.Full; break; } case GpgKeyword.TRUST_ULTIMATE: { SignatureTrust = KeyOwnerTrust.Ultimate; break; } case GpgKeyword.GET_BOOL: { if (String.Equals(line, "openfile.overwrite.okay", StringComparison.Ordinal)) { WriteLine("YES"); } break; } } return(GpgInterfaceResult.Success); }
// internal AND protected internal override GpgInterfaceResult ProcessLine(String line) { if (!GNUCheck(ref line)) return GpgInterfaceResult.Success; switch (GetKeyword(ref line)) { case GpgKeyword.GOODSIG: { IsSigned = true; IsGoodSignature = true; SignatureKeyId = new KeyId(line.Split(' ')[0]); break; } case GpgKeyword.BADSIG: { IsSigned = true; IsGoodSignature = false; SignatureKeyId = new KeyId(line.Split(' ')[0]); break; } case GpgKeyword.VALIDSIG: { String[] parts = line.Split(' '); String datetime = parts[2]; if (datetime.Contains("T")) { // ISO 8601 SignatureDateTime = DateTime.ParseExact(datetime, "s", CultureInfo.InvariantCulture); } else SignatureDateTime = Utils.ConvertTimestamp(Double.Parse(datetime, CultureInfo.InvariantCulture)); break; } case GpgKeyword.TRUST_UNDEFINED: case GpgKeyword.TRUST_NEVER: { SignatureTrust = KeyOwnerTrust.None; break; } case GpgKeyword.TRUST_MARGINAL: { SignatureTrust = KeyOwnerTrust.Marginal; break; } case GpgKeyword.TRUST_FULLY: { SignatureTrust = KeyOwnerTrust.Full; break; } case GpgKeyword.TRUST_ULTIMATE: { SignatureTrust = KeyOwnerTrust.Ultimate; break; } } return GpgInterfaceResult.Success; }
public static Int32 ToId(KeyOwnerTrust trust) { switch (trust) { case KeyOwnerTrust.Ultimate: return 5; case KeyOwnerTrust.Full: return 4; case KeyOwnerTrust.Marginal: return 3; case KeyOwnerTrust.None: return 2; default: return 2; } }