It's a really good question, because, in order to verify the AD, you have to have the same key you need to decrypt it.
You can find an implementation of AES-CTR-HMAC (at a high level where AES-CTR and HMAC are both given) here: https://github.com/tink-crypto/tink-go/blob/main/aead/aesctr...