I am using AES-GCM to encrypt some data. I want every encryption to be done with a new random iv. For every encryption a new iv is generated and appended to the encrypted text to produce the cipher. Since the iv would be send in plaintext I thought I could also generate a HMAC of the iv and the encrypted text and append this mac to the cipher.
HMAC(iv || encryptedText)
The cipher would look like this:
iv || encryptedText || mac
The receiver can now proof the authenticity and integrity of the iv and the encrypted text and then decrypt the data.
Are there any security breaches? Is it even necessary to create a mac?