]> git.ipfire.org Git - thirdparty/chrony.git/commitdiff
cmac: add CMAC interface
authorMiroslav Lichvar <mlichvar@redhat.com>
Tue, 17 Sep 2019 14:57:03 +0000 (16:57 +0200)
committerMiroslav Lichvar <mlichvar@redhat.com>
Tue, 24 Sep 2019 09:56:05 +0000 (11:56 +0200)
Add cmac.h and stubs for cipher-based message authentication code
(CMAC).

cmac.h [new file with mode: 0644]
stubs.c

diff --git a/cmac.h b/cmac.h
new file mode 100644 (file)
index 0000000..c621d20
--- /dev/null
+++ b/cmac.h
@@ -0,0 +1,41 @@
+/*
+  chronyd/chronyc - Programs for keeping computer clocks accurate.
+
+ **********************************************************************
+ * Copyright (C) Miroslav Lichvar  2019
+ * 
+ * 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.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ * 
+ **********************************************************************
+
+  =======================================================================
+
+  Header file for CMAC.
+
+  */
+
+#ifndef GOT_CMAC_H
+#define GOT_CMAC_H
+
+typedef struct CMC_Instance_Record *CMC_Instance;
+
+extern unsigned int CMC_GetKeyLength(const char *cipher);
+extern CMC_Instance CMC_CreateInstance(const char *cipher, const unsigned char *key,
+                                       unsigned int length);
+extern unsigned int CMC_Hash(CMC_Instance inst, const unsigned char *in, unsigned int in_len,
+                             unsigned char *out, unsigned int out_len);
+extern void CMC_DestroyInstance(CMC_Instance inst);
+
+#endif
+
diff --git a/stubs.c b/stubs.c
index 00b07acd72bbe5ca92f19af795f342fb2f002aeb..28654510a778fe24c1e9c25715db1a0eb5b90e2f 100644 (file)
--- a/stubs.c
+++ b/stubs.c
@@ -28,6 +28,7 @@
 #include "config.h"
 
 #include "clientlog.h"
+#include "cmac.h"
 #include "cmdmon.h"
 #include "keys.h"
 #include "logging.h"
@@ -410,3 +411,31 @@ NSD_SignAndSendPacket(uint32_t key_id, NTP_Packet *packet, NTP_Remote_Address *r
 }
 
 #endif /* !FEAT_SIGND */
+
+#ifndef HAVE_CMAC
+
+unsigned int
+CMC_GetKeyLength(const char *cipher)
+{
+  return 0;
+}
+
+CMC_Instance
+CMC_CreateInstance(const char *cipher, const unsigned char *key, unsigned int length)
+{
+  return NULL;
+}
+
+unsigned int
+CMC_Hash(CMC_Instance inst, const unsigned char *in, unsigned int in_len,
+         unsigned char *out, unsigned int out_len)
+{
+  return 0;
+}
+
+void
+CMC_DestroyInstance(CMC_Instance inst)
+{
+}
+
+#endif /* !HAVE_CMAC */