1 /*---------------------------------------------------------------------------*
2   Project:  Horizon
3   File:     nlib_md5_horizon.h
4 
5   Copyright (C)2009 Nintendo Co., Ltd.  All rights reserved.
6 
7   These coded instructions, statements, and computer programs contain
8   proprietary information of Nintendo of America Inc. and/or Nintendo
9   Company Ltd., and are protected by Federal copyright law.  They may
10   not be disclosed to third parties or copied or duplicated in any form,
11   in whole or in part, without the prior written consent of Nintendo.
12 
13   $Rev: 14703 $
14  *---------------------------------------------------------------------------*/
15 
16 #ifndef NN_NET_COMPATIBLE_NLIB_NLIB_H_
17 #define NN_NET_COMPATIBLE_NLIB_NLIB_H_
18 
19 /**
20  * nlib_md5.hからインクルードされる
21  */
22 
23 #include <nn/types.h>
24 
25 #ifdef  __cplusplus
26 extern "C" {
27 #endif
28 
29 /**
30  *  MD5コンテキスト
31  */
32 typedef struct NLIBMD5Context
33 {
34     union
35     {
36         struct
37         {
38             unsigned long a, b, c, d;
39         } p;
40         unsigned long state[4];
41     } x;
42     unsigned long long length;
43     union
44     {
45         unsigned long buffer32[16];
46         unsigned char buffer8[64];
47     } y;
48 } NLIBMD5Context;
49 
50 /*
51 	以下の関数を用意してください。
52 	・Init関数
53 	・Update関数
54 	・Final関数
55 */
56 void NLIB_MD5Init(NLIBMD5Context* context);
57 void NLIB_MD5Update(NLIBMD5Context* context, const void* input, u32 length);
58 void NLIB_MD5Final(u8 digest[20], NLIBMD5Context* context);
59 
60 #ifdef  __cplusplus
61 }
62 #endif
63 
64 #endif
65