2
0

coding.h 7.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158
  1. /*!
  2. \ingroup Base_Encoding
  3. \brief この機能は、与えられたBASS64符号化入力、IN、および出力バッファを出力バッファOUTに格納します。また、変数outlen内の出力バッファに書き込まれたサイズも設定します。
  4. \return 0 Base64エンコード入力の復号化に成功したときに返されます
  5. \return BAD_FUNC_ARG 復号化された入力を保存するには、出力バッファが小さすぎる場合は返されます。
  6. \return ASN_INPUT_E 入力バッファ内の文字がBASE64範囲([A-ZA-Z0-9 + / =])の外側にある場合、またはBASE64エンコード入力に無効な行が終了した場合
  7. \param in デコードする入力バッファへのポインタ
  8. \param inLen デコードする入力バッファの長さ
  9. \param out デコードされたメッセージを保存する出力バッファへのポインタ
  10. _Example_
  11. \code
  12. byte encoded[] = { // initialize text to decode };
  13. byte decoded[sizeof(encoded)];
  14. // requires at least (sizeof(encoded) * 3 + 3) / 4 room
  15. int outLen = sizeof(decoded);
  16. if( Base64_Decode(encoded,sizeof(encoded), decoded, &outLen) != 0 ) {
  17. // error decoding input buffer
  18. }
  19. \endcode
  20. \sa Base64_Encode
  21. \sa Base16_Decode
  22. */
  23. int Base64_Decode(const byte* in, word32 inLen, byte* out,
  24. word32* outLen);
  25. /*!
  26. \ingroup Base_Encoding
  27. \brief この機能は与えられた入力を符号化し、符号化結果を出力バッファOUTに格納します。エスケープ%0A行末の代わりに、従来の '\ N'行の終わりを持つデータを書き込みます。正常に完了すると、この機能はまた、出力バッファに書き込まれたバイト数に統一されます。
  28. \return 0 Base64エンコード入力の復号化に成功したときに返されます
  29. \return BAD_FUNC_ARG 出力バッファが小さすぎてエンコードされた入力を保存する場合は返されます。
  30. \return BUFFER_E 出力バッファがエンコード中に部屋の外に実行された場合に返されます。
  31. \param in エンコードする入力バッファへのポインタ
  32. \param inLen エンコードする入力バッファの長さ
  33. \param out エンコードされたメッセージを保存する出力バッファへのポインタ
  34. _Example_
  35. \code
  36. byte plain[] = { // initialize text to encode };
  37. byte encoded[MAX_BUFFER_SIZE];
  38. int outLen = sizeof(encoded);
  39. if( Base64_Encode(plain, sizeof(plain), encoded, &outLen) != 0 ) {
  40. // error encoding input buffer
  41. }
  42. \endcode
  43. \sa Base64_EncodeEsc
  44. \sa Base64_Decode
  45. */
  46. int Base64_Encode(const byte* in, word32 inLen, byte* out,
  47. word32* outLen);
  48. /*!
  49. \ingroup Base_Encoding
  50. \brief この機能は与えられた入力を符号化し、符号化結果を出力バッファOUTに格納します。それは '\ n "行の終わりではなく、%0aエスケープ行の終わりを持つデータを書き込みます。正常に完了すると、この機能はまた、出力バッファに書き込まれたバイト数に統一されます。
  51. \return 0 Base64エンコード入力の復号化に成功したときに返されます
  52. \return BAD_FUNC_ARG 出力バッファが小さすぎてエンコードされた入力を保存する場合は返されます。
  53. \return BUFFER_E 出力バッファがエンコード中に部屋の外に実行された場合に返されます。
  54. \return ASN_INPUT_E 入力メッセージのデコードの処理中にエラーが発生した場合
  55. \param in エンコードする入力バッファへのポインタ
  56. \param inLen エンコードする入力バッファの長さ
  57. \param out エンコードされたメッセージを保存する出力バッファへのポインタ
  58. _Example_
  59. \code
  60. byte plain[] = { // initialize text to encode };
  61. byte encoded[MAX_BUFFER_SIZE];
  62. int outLen = sizeof(encoded);
  63. if( Base64_EncodeEsc(plain, sizeof(plain), encoded, &outLen) != 0 ) {
  64. // error encoding input buffer
  65. }
  66. \endcode
  67. \sa Base64_Encode
  68. \sa Base64_Decode
  69. */
  70. int Base64_EncodeEsc(const byte* in, word32 inLen, byte* out,
  71. word32* outLen);
  72. /*!
  73. \ingroup Base_Encoding
  74. \brief この機能は与えられた入力を符号化し、符号化結果を出力バッファOUTに格納します。それは新しい行なしでデータを書き込みます。正常に完了すると、この関数はまた、出力バッファに書き込まれたバイト数に統一されたものを設定します
  75. \return 0 Base64エンコード入力の復号化に成功したときに返されます
  76. \return BAD_FUNC_ARG 出力バッファが小さすぎてエンコードされた入力を保存する場合は返されます。
  77. \return BUFFER_E 出力バッファがエンコード中に部屋の外に実行された場合に返されます。
  78. \return ASN_INPUT_E 入力メッセージのデコードの処理中にエラーが発生した場合
  79. \param in エンコードする入力バッファへのポインタ
  80. \param inLen エンコードする入力バッファの長さ
  81. \param out エンコードされたメッセージを保存する出力バッファへのポインタ
  82. _Example_
  83. \code
  84. byte plain[] = { // initialize text to encode };
  85. byte encoded[MAX_BUFFER_SIZE];
  86. int outLen = sizeof(encoded);
  87. if( Base64_Encode_NoNl(plain, sizeof(plain), encoded, &outLen) != 0 ) {
  88. // error encoding input buffer
  89. }
  90. \endcode
  91. \sa Base64_Encode
  92. \sa Base64_Decode
  93. */
  94. int Base64_Encode_NoNl(const byte* in, word32 inLen, byte* out,
  95. word32* outLen);
  96. /*!
  97. \ingroup Base_Encoding
  98. \brief この機能は、与えられたBASE16符号化入力、IN、および出力バッファへの結果を記憶する。また、変数outlen内の出力バッファに書き込まれたサイズも設定します。
  99. \return 0 Base16エンコード入力の復号にうまく復号化したときに返されます
  100. \return BAD_FUNC_ARG 出力バッファが復号化された入力を保存するにも小さすぎる場合、または入力長が2つの倍数でない場合に返されます。
  101. \return ASN_INPUT_E 入力バッファ内の文字がBASE16の範囲外にある場合は返されます([0-9a-f])
  102. \param in デコードする入力バッファへのポインタ
  103. \param inLen デコードする入力バッファの長さ
  104. \param out デコードされたメッセージを保存する出力バッファへのポインタ
  105. _Example_
  106. \code
  107. byte encoded[] = { // initialize text to decode };
  108. byte decoded[sizeof(encoded)];
  109. int outLen = sizeof(decoded);
  110. if( Base16_Decode(encoded,sizeof(encoded), decoded, &outLen) != 0 ) {
  111. // error decoding input buffer
  112. }
  113. \endcode
  114. \sa Base64_Encode
  115. \sa Base64_Decode
  116. \sa Base16_Encode
  117. */
  118. int Base16_Decode(const byte* in, word32 inLen, byte* out, word32* outLen);
  119. /*!
  120. \ingroup Base_Encoding
  121. \brief BASE16出力へのエンコード入力。
  122. \return 0 成功
  123. \return BAD_FUNC_ARG IN、OUT、またはoutlenがNULLの場合、またはoutlenがInlen Plus 1を超えている場合は返します。
  124. \param in エンコードされる入力バッファへのポインタ。
  125. \param inLen 入力バッファの長さ
  126. \param out 出力バッファへのポインタ。
  127. _Example_
  128. \code
  129. byte in[] = { // Contents of something to be encoded };
  130. byte out[NECESSARY_OUTPUT_SIZE];
  131. word32 outSz = sizeof(out);
  132. if(Base16_Encode(in, sizeof(in), out, &outSz) != 0)
  133. {
  134. // Handle encode error
  135. }
  136. \endcode
  137. \sa Base64_Encode
  138. \sa Base64_Decode
  139. \sa Base16_Decode
  140. */
  141. int Base16_Encode(const byte* in, word32 inLen, byte* out, word32* outLen);