コード例 #1
0
ファイル: mech_md2.c プロジェクト: srajiv/opencryptoki
CK_RV
md2_hash( SESSION         * sess,
          CK_BBOOL          length_only,
          DIGEST_CONTEXT  * ctx,
          CK_BYTE         * in_data,
          CK_ULONG          in_data_len,
          CK_BYTE         * out_data,
          CK_ULONG        * out_data_len )
{
    CK_RV     rc;


    if (!sess || !ctx || !out_data_len) {
        OCK_LOG_ERR(ERR_FUNCTION_FAILED);
        return CKR_FUNCTION_FAILED;
    }

    if (length_only == TRUE) {
        *out_data_len = MD2_HASH_SIZE;
        return CKR_OK;
    }

    rc = md2_hash_update( sess, ctx, in_data, in_data_len );
    if (rc != CKR_OK) {
        OCK_LOG_ERR(ERR_FUNCTION_FAILED);
        return CKR_FUNCTION_FAILED;
    }
    return md2_hash_final( sess,      FALSE,
                           ctx,
                           out_data,  out_data_len );
}
コード例 #2
0
ファイル: mech_md2.c プロジェクト: tuchscherer/opencryptoki
CK_RV
md2_hash( STDLL_TokData_t * tokdata,
	  SESSION         * sess,
          CK_BBOOL          length_only,
          DIGEST_CONTEXT  * ctx,
          CK_BYTE         * in_data,
          CK_ULONG          in_data_len,
          CK_BYTE         * out_data,
          CK_ULONG        * out_data_len )
{
   CK_RV     rc;


   if (!sess || !ctx || !out_data_len){
      TRACE_ERROR("%s received bad argument(s)\n", __FUNCTION__);
      return CKR_FUNCTION_FAILED;
   }

   if (length_only == TRUE) {
      *out_data_len = MD2_HASH_SIZE;
      return CKR_OK;
   }

   rc = md2_hash_update( tokdata, sess, ctx, in_data, in_data_len );
   if (rc != CKR_OK){
      TRACE_DEVEL("md2_hash_update failed.\n");
      return CKR_FUNCTION_FAILED;
   }
   return md2_hash_final( tokdata, sess, FALSE, ctx, out_data, out_data_len );
}