1650708ac7
Phase 1 complete implementation: - AES-GCM AEAD encryption (EncryptedPacket::new) - AES-GCM AEAD decryption (EncryptedPacket::read) - AES-GCM packet structure: packet_length plaintext + ciphertext + 16-byte tag - AES-GCM nonce: sequence_number (4 bytes -> 12 bytes) - AES-CTR fallback preserved (MtE mode) Key differences AES-GCM vs AES-CTR: - AES-GCM: packet_length is plaintext (as AAD) - AES-CTR: packet_length is encrypted - AES-GCM: 16-byte GCM tag (no separate MAC) - AES-CTR: 32-byte HMAC-SHA256 MAC Performance improvement: - AES-GCM: encrypt+authenticate in one step (AEAD) - AES-CTR: MAC-then-Encrypt (2 steps) Testing: - OpenSSH client negotiated aes256-gcm@openssh.com - cipher_mode set to AesGcm successfully - Next: full SSH connection test