AWS SDK for Java now supports Client-Side Authenticated Encryption for S3
java.awsblog.com