summaryrefslogtreecommitdiffstats
path: root/userspace/ncrypto_masterkey.c
diff options
context:
space:
mode:
authorJan Chadima <jchadima@redhat.com>2010-08-02 10:56:34 +0200
committerMiloslav Trmač <mitr@redhat.com>2010-08-24 20:58:30 +0200
commit71be5465628262f1a475b52eaf90c5caba5876ea (patch)
treefff8c000bb3480741e5dc34d66196ddbc11ad6f2 /userspace/ncrypto_masterkey.c
parentaf2c2e1da1a898c8968281824ba8a4d9616670dc (diff)
Initial userspace library version
Diffstat (limited to 'userspace/ncrypto_masterkey.c')
-rw-r--r--userspace/ncrypto_masterkey.c35
1 files changed, 35 insertions, 0 deletions
diff --git a/userspace/ncrypto_masterkey.c b/userspace/ncrypto_masterkey.c
new file mode 100644
index 0000000..a5c55c3
--- /dev/null
+++ b/userspace/ncrypto_masterkey.c
@@ -0,0 +1,35 @@
+
+#include <sys/types.h>
+#include <sys/ioctl.h>
+#include <string.h>
+#include <errno.h>
+#include "../ncr.h"
+#include "ncrypto.h"
+
+extern int __ncr_file_descriptor;
+
+int
+ncr_masterkey_set(void *key, size_t key_size)
+{
+ struct ncr_master_key_st io;
+ memset(&io, 0, sizeof(io));
+
+ if (!key || !key_size) {
+ errno = EINVAL;
+ return -1;
+ }
+
+ io.key = key = key;
+ io.key_size = key_size;
+
+ if (__ncr_file_descriptor < 0) {
+ errno = EBADF;
+ return -1;
+ }
+
+ if (ioctl(__ncr_file_descriptor, NCRIO_MASTER_KEY_SET, &io) < 0)
+ return -1;
+
+ return 0;
+}
+