#include "core.h"intcrypto_aead_decrypt(unsignedchar*m,unsignedlonglong*mlen,unsignedchar*nsec,constunsignedchar*c,unsignedlonglongclen,constunsignedchar*ad,unsignedlonglongadlen,constunsignedchar*npub,constunsignedchar*k){if(clen<CRYPTO_ABYTES){*mlen=0;return-1;}states;(void)nsec;// set plaintext size*mlen=clen-CRYPTO_ABYTES;ascon_core(&s,m,c,*mlen,ad,adlen,npub,k,ASCON_DEC);// verify tag (should be constant time, check compiler output)if(((s.x3^U64BIG(*(u64*)(c+*mlen)))|(s.x4^U64BIG(*(u64*)(c+*mlen+8))))!=0){*mlen=0;return-1;}return0;}