LCOV - code coverage report
Current view: top level - libavutil/tests - aes_ctr.c (source / functions) Hit Total Coverage
Test: coverage.info Lines: 19 23 82.6 %
Date: 2017-12-17 23:02:56 Functions: 1 1 100.0 %

          Line data    Source code
       1             : /*
       2             :  * This file is part of FFmpeg.
       3             :  *
       4             :  * FFmpeg is free software; you can redistribute it and/or
       5             :  * modify it under the terms of the GNU Lesser General Public
       6             :  * License as published by the Free Software Foundation; either
       7             :  * version 2.1 of the License, or (at your option) any later version.
       8             :  *
       9             :  * FFmpeg is distributed in the hope that it will be useful,
      10             :  * but WITHOUT ANY WARRANTY; without even the implied warranty of
      11             :  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
      12             :  * Lesser General Public License for more details.
      13             :  *
      14             :  * You should have received a copy of the GNU Lesser General Public
      15             :  * License along with FFmpeg; if not, write to the Free Software
      16             :  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
      17             :  */
      18             : 
      19             : #include "libavutil/log.h"
      20             : #include "libavutil/mem.h"
      21             : #include "libavutil/aes_ctr.h"
      22             : 
      23             : static const DECLARE_ALIGNED(8, uint8_t, plain)[] = {
      24             :     0x6d, 0x6f, 0x73, 0x74, 0x20, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d
      25             : };
      26             : static DECLARE_ALIGNED(8, uint8_t, tmp)[11];
      27             : 
      28           1 : int main (void)
      29             : {
      30           1 :     int ret = 1;
      31             :     struct AVAESCTR *ae, *ad;
      32             :     const uint8_t *iv;
      33             : 
      34           1 :     ae = av_aes_ctr_alloc();
      35           1 :     ad = av_aes_ctr_alloc();
      36             : 
      37           2 :     if (!ae || !ad)
      38             :         goto ERROR;
      39             : 
      40           1 :     if (av_aes_ctr_init(ae, (const uint8_t*)"0123456789abcdef") < 0)
      41           0 :         goto ERROR;
      42             : 
      43           1 :     if (av_aes_ctr_init(ad, (const uint8_t*)"0123456789abcdef") < 0)
      44           0 :         goto ERROR;
      45             : 
      46           1 :     av_aes_ctr_set_random_iv(ae);
      47           1 :     iv =   av_aes_ctr_get_iv(ae);
      48           1 :     av_aes_ctr_set_iv(ad, iv);
      49             : 
      50           1 :     av_aes_ctr_crypt(ae, tmp, plain, sizeof(tmp));
      51           1 :     av_aes_ctr_crypt(ad, tmp, tmp,   sizeof(tmp));
      52             : 
      53           1 :     if (memcmp(tmp, plain, sizeof(tmp)) != 0){
      54           0 :         av_log(NULL, AV_LOG_ERROR, "test failed\n");
      55           0 :         goto ERROR;
      56             :     }
      57             : 
      58           1 :     av_log(NULL, AV_LOG_INFO, "test passed\n");
      59           1 :     ret = 0;
      60             : 
      61           1 : ERROR:
      62           1 :     av_aes_ctr_free(ae);
      63           1 :     av_aes_ctr_free(ad);
      64           1 :     return ret;
      65             : }

Generated by: LCOV version 1.13