@@ -155,6 +155,63 @@ func TestPGP_Good(t *testing.T) {
155155 assert .NotNil (t , ciphertext )
156156}
157157
158+ func TestPGP_Bad (t * testing.T ) {
159+ // Generate two key pairs
160+ pubKey1 , privKey1 , err := service .GeneratePGPKeyPair ("test1" , "test1@test.com" , "" )
161+ assert .NoError (t , err )
162+ pubKey2 , privKey2 , err := service .GeneratePGPKeyPair ("test2" , "test2@test.com" , "" )
163+ assert .NoError (t , err )
164+
165+ message := []byte ("secret message" )
166+
167+ // Test decryption with the wrong key
168+ ciphertext , err := service .EncryptPGP (pubKey1 , message )
169+ assert .NoError (t , err )
170+ // This should fail because we are using the wrong private key.
171+ _ , err = service .DecryptPGP (privKey2 , ciphertext ) // Intentionally using wrong key
172+ assert .Error (t , err )
173+
174+ // Test verification with the wrong key
175+ signature , err := service .SignPGP (privKey1 , message )
176+ assert .NoError (t , err )
177+ err = service .VerifyPGP (pubKey2 , message , signature )
178+ assert .Error (t , err )
179+
180+ // Test verification with a tampered message
181+ tamperedMessage := []byte ("tampered message" )
182+ err = service .VerifyPGP (pubKey1 , tamperedMessage , signature )
183+ assert .Error (t , err )
184+ }
185+
186+ func TestPGP_Ugly (t * testing.T ) {
187+ // Test with malformed keys
188+ _ , err := service .EncryptPGP ([]byte ("not a real key" ), []byte ("message" ))
189+ assert .Error (t , err )
190+
191+ _ , err = service .DecryptPGP ([]byte ("not a real key" ), []byte ("message" ))
192+ assert .Error (t , err )
193+
194+ _ , err = service .SignPGP ([]byte ("not a real key" ), []byte ("message" ))
195+ assert .Error (t , err )
196+
197+ err = service .VerifyPGP ([]byte ("not a real key" ), []byte ("message" ), []byte ("not a real signature" ))
198+ assert .Error (t , err )
199+
200+ // Test with empty message
201+ pubKey , privKey , err := service .GeneratePGPKeyPair ("test" , "test@test.com" , "" )
202+ assert .NoError (t , err )
203+ message := []byte ("" )
204+ ciphertext , err := service .EncryptPGP (pubKey , message )
205+ assert .NoError (t , err )
206+ plaintext , err := service .DecryptPGP (privKey , ciphertext , )
207+ assert .NoError (t , err )
208+ assert .Equal (t , message , plaintext )
209+
210+ // Test symmetric encryption with empty passphrase
211+ _ , err = service .SymmetricallyEncryptPGP ([]byte ("" ), message )
212+ assert .Error (t , err )
213+ }
214+
158215// --- IsHashAlgo Tests ---
159216
160217func TestIsHashAlgo_Good (t * testing.T ) {
0 commit comments