Detecting incorrect key using AES/GCM in JAVA
        Posted  
        
            by 
                4r1y4n
            
        on Stack Overflow
        
        See other posts from Stack Overflow
        
            or by 4r1y4n
        
        
        
        Published on 2012-09-01T13:40:05Z
        Indexed on 
            2012/09/11
            3:38 UTC
        
        
        Read the original article
        Hit count: 401
        
I'm using AES to encrypt/decrypt some files in GCM mode using BouncyCastle.
While I'm proving wrong key for decryption there is no exception.
How should I check that the key is incorrect?
my code is this:  
    SecretKeySpec   incorrectKey = new SecretKeySpec(keyBytes, "AES");
    IvParameterSpec ivSpec = new IvParameterSpec(ivBytes);
    Cipher          cipher = Cipher.getInstance("AES/GCM/NoPadding", "BC");
    byte[] block = new byte[1048576];
    int i;
    cipher.init(Cipher.DECRYPT_MODE, incorrectKey, ivSpec);
    BufferedInputStream fis=new BufferedInputStream(new ProgressMonitorInputStream(null,"Decrypting ...",new FileInputStream("file.enc")));
    BufferedOutputStream ro=new BufferedOutputStream(new FileOutputStream("file_org"));        
    CipherOutputStream dcOut = new CipherOutputStream(ro, cipher);
    while ((i = fis.read(block)) != -1) {
        dcOut.write(block, 0, i);
    }
    dcOut.close();
    fis.close();
thanks
© Stack Overflow or respective owner