summaryrefslogtreecommitdiff
path: root/plugins/MirOTR/libotr-3.2.0/toolkit/otr_sesskeys.c
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/MirOTR/libotr-3.2.0/toolkit/otr_sesskeys.c')
-rw-r--r--plugins/MirOTR/libotr-3.2.0/toolkit/otr_sesskeys.c92
1 files changed, 0 insertions, 92 deletions
diff --git a/plugins/MirOTR/libotr-3.2.0/toolkit/otr_sesskeys.c b/plugins/MirOTR/libotr-3.2.0/toolkit/otr_sesskeys.c
deleted file mode 100644
index 5c5583fb4a..0000000000
--- a/plugins/MirOTR/libotr-3.2.0/toolkit/otr_sesskeys.c
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
- * Off-the-Record Messaging Toolkit
- * Copyright (C) 2004-2008 Ian Goldberg, Chris Alexander, Nikita Borisov
- * <otr@cypherpunks.ca>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of version 2 of the GNU General Public License as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-/* system headers */
-#include <stdio.h>
-#include <stdlib.h>
-
-/* toolkit headers */
-#include "parse.h"
-#include "sesskeys.h"
-
-static void usage(const char *progname)
-{
- fprintf(stderr, "Usage: %s our_privkey their_pubkey\n"
-"Calculate and display our public key, the session id, two AES keys,\n"
-"and two MAC keys generated by the given DH private key and public key.\n",
- progname);
- exit(1);
-}
-
-int main(int argc, char **argv)
-{
- unsigned char *argbuf;
- size_t argbuflen;
- gcry_mpi_t our_x, our_y, their_y;
- unsigned char *pubbuf;
- size_t publen;
- unsigned char sessionid[20], sendenc[16], rcvenc[16];
- unsigned char sendmac[20], rcvmac[20];
- int is_high;
-
- if (argc != 3) {
- usage(argv[0]);
- }
-
- argv_to_buf(&argbuf, &argbuflen, argv[1]);
- /* Private keys are only 320 bits long, so check for that to make
- * sure they didn't get the args the wrong way around */
- if (!argbuf || argbuflen > 40) usage(argv[0]);
- gcry_mpi_scan(&our_x, GCRYMPI_FMT_USG, argbuf, argbuflen, NULL);
- free(argbuf);
- argv_to_buf(&argbuf, &argbuflen, argv[2]);
- if (!argbuf) usage(argv[0]);
- gcry_mpi_scan(&their_y, GCRYMPI_FMT_USG, argbuf, argbuflen, NULL);
- free(argbuf);
-
- sesskeys_gen(sessionid, sendenc, rcvenc, &is_high, &our_y, our_x, their_y);
- sesskeys_make_mac(sendmac, sendenc);
- sesskeys_make_mac(rcvmac, rcvenc);
-
- /* Print our public key into a buffer */
- gcry_mpi_print(GCRYMPI_FMT_USG, NULL, 0, &publen, our_y);
- pubbuf = malloc(publen);
- if (!pubbuf) {
- fprintf(stderr, "Out of memory!\n");
- exit(1);
- }
- gcry_mpi_print(GCRYMPI_FMT_USG, pubbuf, publen, NULL, our_y);
-
- puts("");
- printf("We are the %s end of this key exchange.\n",
- is_high ? "high" : "low");
- puts("");
- dump_data(stdout, "Our public key", pubbuf, publen);
- puts("");
- dump_data(stdout, "Session id", sessionid, 20);
- puts("");
- dump_data(stdout, "Sending AES key", sendenc, 16);
- dump_data(stdout, "Sending MAC key", sendmac, 20);
- dump_data(stdout, "Receiving AES key", rcvenc, 16);
- dump_data(stdout, "Receiving MAC key", rcvmac, 20);
- puts("");
- fflush(stdout);
-
- return 0;
-}