基于机智云物联网平台MCU模式基础教程及远程OTA( 五 )


gagent_md5.h
1.
#ifndef_GAGENT_MD5_H2.#define_GAGENT_MD5_H3.4.typedefstruct5.{6.unsignedintcount[2];7.unsignedintstate[4];8.unsignedcharbuffer[64];9.}MD5_CTX;10.#defineF(x,y,z)((x&y)|(~x&z))11.#defineG(x,y,z)((x&z)|(y&~z))12.#defineH(x,y,z)(x^y^z)13.#defineI(x,y,z)(y^(x|~z))14.#defineROTATE_LEFT(x,n)((x<<n)|(x>>(32-n)))15.#defineFF(a,b,c,d,x,s,ac)16.{17.a+=F(b,c,d)+x+ac;18.a=ROTATE_LEFT(a,s);19.a+=b;20.}21.#defineGG(a,b,c,d,x,s,ac)22.{23.a+=G(b,c,d)+x+ac;24.a=ROTATE_LEFT(a,s);25.a+=b;26.}27.#defineHH(a,b,c,d,x,s,ac)28.{29.a+=H(b,c,d)+x+ac;30.a=ROTATE_LEFT(a,s);31.a+=b;32.}33.#defineII(a,b,c,d,x,s,ac)34.{35.a+=I(b,c,d)+x+ac;36.a=ROTATE_LEFT(a,s);37.a+=b;38.}39.voidGAgent_MD5Init(MD5_CTX*context);40.voidGAgent_MD5Update(MD5_CTX*context,unsignedchar*input,unsignedintinputlen);41.voidGAgent_MD5Final(MD5_CTX*context,unsignedchardigest[16]);42.voidGAgent_MD5Transform(unsignedintstate[4],unsignedcharblock[64]);43.voidGAgent_MD5Encode(unsignedchar*output,unsignedint*input,unsignedintlen);44.voidGAgent_MD5Decode(unsignedint*output,unsignedchar*input,unsignedintlen);45.#endif【基于机智云物联网平台MCU模式基础教程及远程OTA】复制代码