aes-algorithm-lite.hpp
1 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
22 #ifndef NDN_AES_ALGORITHM_LITE_HPP
23 #define NDN_AES_ALGORITHM_LITE_HPP
24 
25 #include "../../util/blob-lite.hpp"
26 #include "../../../c/errors.h"
27 
28 namespace ndn {
29 
36 public:
58  static ndn_Error
60  (const uint8_t* key, size_t keyLength, const uint8_t* initialVector,
61  size_t initialVectorLength, const uint8_t* encryptedData,
62  size_t encryptedDataLength, uint8_t* plainData, size_t& plainDataLength);
63 
82  static ndn_Error
84  (const BlobLite& key, const BlobLite& initialVector,
85  const BlobLite& encryptedData, uint8_t *plainData, size_t& plainDataLength)
86  {
87  return decrypt128Cbc
88  (key.buf(), key.size(), initialVector.buf(), initialVector.size(),
89  encryptedData.buf(), encryptedData.size(), plainData, plainDataLength);
90  }
91 
108  static ndn_Error
110  (const uint8_t* key, size_t keyLength, const uint8_t* encryptedData,
111  size_t encryptedDataLength, uint8_t* plainData, size_t& plainDataLength);
112 
127  static ndn_Error
129  (const BlobLite& key, const BlobLite& encryptedData, uint8_t *plainData,
130  size_t& plainDataLength)
131  {
132  return decrypt128Ecb
133  (key.buf(), key.size(), encryptedData.buf(), encryptedData.size(),
134  plainData, plainDataLength);
135  }
136 
158  static ndn_Error
160  (const uint8_t* key, size_t keyLength, const uint8_t* initialVector,
161  size_t initialVectorLength, const uint8_t* plainData,
162  size_t plainDataLength, uint8_t* encryptedData, size_t& encryptedDataLength);
163 
182  static ndn_Error
184  (const BlobLite& key, const BlobLite& initialVector,
185  const BlobLite& plainData, uint8_t *encryptedData, size_t& encryptedDataLength)
186  {
187  return encrypt128Cbc
188  (key.buf(), key.size(), initialVector.buf(), initialVector.size(),
189  plainData.buf(), plainData.size(), encryptedData, encryptedDataLength);
190  }
191 
208  static ndn_Error
210  (const uint8_t* key, size_t keyLength, const uint8_t* plainData,
211  size_t plainDataLength, uint8_t* encryptedData, size_t& encryptedDataLength);
212 
227  static ndn_Error
229  (const BlobLite& key, const BlobLite& plainData, uint8_t *encryptedData,
230  size_t& encryptedDataLength)
231  {
232  return encrypt128Ecb
233  (key.buf(), key.size(), plainData.buf(), plainData.size(), encryptedData,
234  encryptedDataLength);
235  }
236 };
237 
238 }
239 
240 #endif
size_t size() const
Return size given to the constructor.
Definition: blob-lite.hpp:61
Copyright (C) 2013-2016 Regents of the University of California.
Definition: common.hpp:36
static ndn_Error decrypt128Cbc(const uint8_t *key, size_t keyLength, const uint8_t *initialVector, size_t initialVectorLength, const uint8_t *encryptedData, size_t encryptedDataLength, uint8_t *plainData, size_t &plainDataLength)
Use the key to decrypt encryptedData using AES 128 in CBC mode.
Definition: aes-algorithm-lite.cpp:29
static ndn_Error decrypt128Ecb(const uint8_t *key, size_t keyLength, const uint8_t *encryptedData, size_t encryptedDataLength, uint8_t *plainData, size_t &plainDataLength)
Use the key to decrypt encryptedData using AES 128 in ECB mode.
Definition: aes-algorithm-lite.cpp:40
static ndn_Error encrypt128Ecb(const uint8_t *key, size_t keyLength, const uint8_t *plainData, size_t plainDataLength, uint8_t *encryptedData, size_t &encryptedDataLength)
Use the key to encrypt encryptedData using AES 128 in ECB mode.
Definition: aes-algorithm-lite.cpp:61
The AesAlgorithmLite class provides static methods to encrypt and decrypt using the AES symmetric key...
Definition: aes-algorithm-lite.hpp:35
A BlobLite holds a pointer to an immutable pre-allocated buffer and its length This is like a JavaScr...
Definition: blob-lite.hpp:37
const uint8_t * buf() const
Return buf given to the constructor.
Definition: blob-lite.hpp:55
static ndn_Error encrypt128Cbc(const uint8_t *key, size_t keyLength, const uint8_t *initialVector, size_t initialVectorLength, const uint8_t *plainData, size_t plainDataLength, uint8_t *encryptedData, size_t &encryptedDataLength)
Use the key to encrypt encryptedData using AES 128 in CBC mode.
Definition: aes-algorithm-lite.cpp:50