From 88a91c2d02a86c71eb34fc8b01ef766402e973b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dag-Erling=20Sm=C3=B8rgrav?= Date: Thu, 15 Aug 2013 15:23:58 +0000 Subject: [PATCH] Rename oath_dummy_key() to oath_key_dummy() and move it into its own file. git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@694 185d5e19-27fe-0310-9dcf-9bff6b9f3609 --- include/security/oath.h | 2 +- lib/liboath/Makefile.am | 1 + lib/liboath/oath_key.c | 18 --------- lib/liboath/oath_key_dummy.c | 76 ++++++++++++++++++++++++++++++++++++ 4 files changed, 78 insertions(+), 19 deletions(-) create mode 100644 lib/liboath/oath_key_dummy.c diff --git a/include/security/oath.h b/include/security/oath.h index ae9ea98..861df94 100644 --- a/include/security/oath.h +++ b/include/security/oath.h @@ -42,7 +42,7 @@ struct oath_key *oath_key_from_uri(const char *); struct oath_key *oath_key_from_file(const char *); char *oath_key_to_uri(const struct oath_key *); -struct oath_key *oath_dummy_key(enum oath_mode, enum oath_hash, unsigned int); +struct oath_key *oath_key_dummy(enum oath_mode, enum oath_hash, unsigned int); unsigned int oath_hotp(const uint8_t *, size_t, uint64_t, unsigned int); unsigned int oath_hotp_current(struct oath_key *); diff --git a/lib/liboath/Makefile.am b/lib/liboath/Makefile.am index b31c91d..be2f2cb 100644 --- a/lib/liboath/Makefile.am +++ b/lib/liboath/Makefile.am @@ -10,6 +10,7 @@ liboath_la_SOURCES = \ oath_hotp.c \ oath_totp.c \ oath_key_alloc.c \ + oath_key_dummy.c \ oath_key_free.c \ oath_key.c diff --git a/lib/liboath/oath_key.c b/lib/liboath/oath_key.c index fbf5354..9452274 100644 --- a/lib/liboath/oath_key.c +++ b/lib/liboath/oath_key.c @@ -266,21 +266,3 @@ oath_key_to_uri(const struct oath_key *key) return (uri); } - -struct oath_key * -oath_dummy_key(enum oath_mode mode, enum oath_hash hash, unsigned int digits) -{ - struct oath_key *key; - - if ((key = oath_key_alloc()) == NULL) - return (NULL); - key->mode = mode; - key->digits = digits; - key->counter = 0; - key->timestep = 30; - key->hash = hash; - strcpy(key->label, "oath-dummy-key"); - key->labellen = strlen(key->label); - key->keylen = sizeof key->key; - return (key); -} diff --git a/lib/liboath/oath_key_dummy.c b/lib/liboath/oath_key_dummy.c new file mode 100644 index 0000000..1625a89 --- /dev/null +++ b/lib/liboath/oath_key_dummy.c @@ -0,0 +1,76 @@ +/*- + * Copyright (c) 2013 Universitetet i Oslo + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote + * products derived from this software without specific prior written + * permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $Id$ + */ + +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + +#include +#include + +#include + +/* + * OATH + * + * Creates a dummy OATH key structure + */ + +struct oath_key * +oath_key_dummy(enum oath_mode mode, enum oath_hash hash, unsigned int digits) +{ + struct oath_key *key; + + if ((key = oath_key_alloc()) == NULL) + return (NULL); + key->mode = mode; + key->digits = digits; + key->counter = 0; + key->timestep = 30; + key->hash = hash; + strcpy(key->label, "oath-dummy-key"); + key->labellen = strlen(key->label); + key->keylen = sizeof key->key; + return (key); +} + +/** + * The =oath_key_dummy function allocates and initializes a dummy OATH key + * structure. + * Authentication attempts using a dummy key will always fail. + * + * Keys allocated with =oath_key_dummy must be freed using =oath_key_free. + * + * >oath_key_alloc + * >oath_key_free + * + * AUTHOR UIO + */