Tegra CEC Support
[linux-2.6.git] / drivers / misc / tegra-cryptodev.h
index ed62a52..e6b19b2 100644 (file)
 #define TEGRA_CRYPTO_IOCTL_PROCESS_REQ _IOWR(0x98, 101, int*)
 #define TEGRA_CRYPTO_IOCTL_SET_SEED    _IOWR(0x98, 102, int*)
 #define TEGRA_CRYPTO_IOCTL_GET_RANDOM  _IOWR(0x98, 103, int*)
+#define TEGRA_CRYPTO_IOCTL_GET_SHA     _IOWR(0x98, 104, int*)
+#define TEGRA_CRYPTO_IOCTL_RSA_REQ     _IOWR(0x98, 105, int*)
 
 #define TEGRA_CRYPTO_MAX_KEY_SIZE      AES_MAX_KEY_SIZE
+#define RSA_KEY_SIZE           512
 #define TEGRA_CRYPTO_IV_SIZE   AES_BLOCK_SIZE
 #define DEFAULT_RNG_BLK_SZ     16
 
 /* encrypt/decrypt operations */
 #define TEGRA_CRYPTO_ECB       BIT(0)
 #define TEGRA_CRYPTO_CBC       BIT(1)
-#define TEGRA_CRYPTO_RNG       BIT(2)
+#define TEGRA_CRYPTO_OFB       BIT(2)
+#define TEGRA_CRYPTO_CTR       BIT(3)
+#define TEGRA_CRYPTO_CMAC      BIT(4)
+#define TEGRA_CRYPTO_RNG       BIT(5)
 
 /* a pointer to this struct needs to be passed to:
  * TEGRA_CRYPTO_IOCTL_PROCESS_REQ
@@ -65,6 +71,28 @@ struct tegra_rng_req {
        u8 seed[TEGRA_CRYPTO_RNG_SEED_SIZE];
        u8 *rdata; /* random generated data */
        int nbytes; /* random data length */
+       int type;
+};
+
+struct tegra_rsa_req {
+       char *key;
+       int keylen;
+       char *algo;
+       char *message;
+       int msg_len;
+       int modlen;
+       int pub_explen;
+       int prv_explen;
+       char *result;
+};
+
+struct tegra_sha_req {
+       char key[TEGRA_CRYPTO_MAX_KEY_SIZE];
+       int keylen;
+       unsigned char *algo;
+       unsigned char *plaintext;
+       int plaintext_sz;
+       unsigned char *result;
 };
 
 #endif