I want to implement AES-128-GCM in assembler using Intel AES-NI instructions. I have found reference code in the Intel AES-NI Whitepaper but I don't see code for the GCM mode there (or indeed any use of the PCLMULQDQ instruction). Do I miss something in this document? Or could somebody point me to another similarly clean and simple implementation in assembler with AES-NI instructions that uses GCM mode?

I am hopeful that the implementation will be pretty straightforward given a good reference implementation and also good reference benchmarks for cycles per byte. The main reason I am reimplementing this is as an exercise in using an unusual assembler (DynASM).

  • 1
    $\begingroup$ I'm voting to close this question as off-topic because it is a code request or asking for programming help. $\endgroup$ – otus Nov 23 '15 at 8:02
  • 1
    $\begingroup$ Maybe this will help you. $\endgroup$ – SEJPM Nov 23 '15 at 11:37
  • $\begingroup$ What is your question? This site is not a discussion forum. For that I would recommend sci.crypt. This site is for specific questions. So far all I see in your question is "did I miss something in a document" and "can you point me to some code that does what I want". Definitely not the types of questions we want on this site. I suggest you take the site tour. $\endgroup$ – mikeazo Nov 23 '15 at 14:14
  • $\begingroup$ I think this is a good question given that Intel has published this code and it is very difficult to find. I can't find a direct link to the Intel reference implementation, but I did find a copy of the Intel reference implementation at: secure.yikes.com/~bear/aesni-gcm.tar.gz $\endgroup$ – Clarus Feb 2 '17 at 18:14