## ffmpeg / libavutil / des.h @ 80a07f6e

History | View | Annotate | Download (1.72 KB)

1 | 2e9ad69a | Reimar Döffinger | ```
/*
``` |
---|---|---|---|

2 | ```
* DES encryption/decryption
``` |
||

3 | ```
* Copyright (c) 2007 Reimar Doeffinger
``` |
||

4 | ```
*
``` |
||

5 | ```
* This file is part of FFmpeg.
``` |
||

6 | ```
*
``` |
||

7 | ```
* FFmpeg is free software; you can redistribute it and/or
``` |
||

8 | ```
* modify it under the terms of the GNU Lesser General Public
``` |
||

9 | ```
* License as published by the Free Software Foundation; either
``` |
||

10 | ```
* version 2.1 of the License, or (at your option) any later version.
``` |
||

11 | ```
*
``` |
||

12 | ```
* FFmpeg is distributed in the hope that it will be useful,
``` |
||

13 | ```
* but WITHOUT ANY WARRANTY; without even the implied warranty of
``` |
||

14 | ```
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
``` |
||

15 | ```
* Lesser General Public License for more details.
``` |
||

16 | ```
*
``` |
||

17 | ```
* You should have received a copy of the GNU Lesser General Public
``` |
||

18 | ```
* License along with FFmpeg; if not, write to the Free Software
``` |
||

19 | ```
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
``` |
||

20 | ```
*/
``` |
||

21 | |||

22 | 98790382 | Stefano Sabatini | ```
#ifndef AVUTIL_DES_H
``` |

23 | ```
#define AVUTIL_DES_H
``` |
||

24 | 2e9ad69a | Reimar Döffinger | |

25 | fe0c188b | Peter Ross | #include <stdint.h> |

26 | 1a534c7f | Reimar Döffinger | |

27 | ```
struct AVDES {
``` |
||

28 | uint64_t round_keys[3][16]; |
||

29 | ```
int triple_des;
``` |
||

30 | }; |
||

31 | |||

32 | ```
/**
``` |
||

33 | ```
* \brief Initializes an AVDES context.
``` |
||

34 | ```
*
``` |
||

35 | bc17cc01 | Reimar Döffinger | ```
* \param key_bits must be 64 or 192
``` |

36 | 1a534c7f | Reimar Döffinger | ```
* \param decrypt 0 for encryption, 1 for decryption
``` |

37 | ```
*/
``` |
||

38 | int av_des_init(struct AVDES *d, const uint8_t *key, int key_bits, int decrypt); |
||

39 | f0a838e5 | Diego Biurrun | |

40 | 46fb896b | Reimar Döffinger | ```
/**
``` |

41 | 1a534c7f | Reimar Döffinger | ```
* \brief Encrypts / decrypts using the DES algorithm.
``` |

42 | 46fb896b | Reimar Döffinger | ```
*
``` |

43 | 1a534c7f | Reimar Döffinger | ```
* \param count number of 8 byte blocks
``` |

44 | ```
* \param dst destination array, can be equal to src, must be 8-byte aligned
``` |
||

45 | ```
* \param src source array, can be equal to dst, must be 8-byte aligned, may be NULL
``` |
||

46 | ```
* \param iv initialization vector for CBC mode, if NULL then ECB will be used,
``` |
||

47 | ```
* must be 8-byte aligned
``` |
||

48 | ```
* \param decrypt 0 for encryption, 1 for decryption
``` |
||

49 | 46fb896b | Reimar Döffinger | ```
*/
``` |

50 | 1a534c7f | Reimar Döffinger | void av_des_crypt(struct AVDES *d, uint8_t *dst, const uint8_t *src, int count, uint8_t *iv, int decrypt); |

51 | 2e9ad69a | Reimar Döffinger | |

52 | 98790382 | Stefano Sabatini | #endif /* AVUTIL_DES_H */ |