# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-AC_INIT([yubikey-personalization], [1.11.4],
+AC_INIT([yubikey-personalization], [1.12.0],
[yubico-devel@googlegroups.com], [ykpers],
[http://code.google.com/p/yubikey-personalization/])
AC_CONFIG_AUX_DIR([build-aux])
# Interfaces changed/added/removed: CURRENT++ REVISION=0
# Interfaces added: AGE++
# Interfaces removed: AGE=0
-AC_SUBST(LT_CURRENT, 13)
-AC_SUBST(LT_REVISION, 3)
-AC_SUBST(LT_AGE, 11)
+AC_SUBST(LT_CURRENT, 14)
+AC_SUBST(LT_REVISION, 0)
+AC_SUBST(LT_AGE, 12)
AM_INIT_AUTOMAKE([1.11.3 -Wall -Werror])
AM_SILENT_RULES([yes])
cfg->yk_major_version > 2;
}
+static bool vcheck_v24_or_greater(const YKP_CONFIG *cfg)
+{
+ return (cfg->yk_major_version == 2 &&
+ cfg->yk_minor_version >= 4) ||
+ cfg->yk_major_version > 2;
+}
+
+static bool vcheck_v30(const YKP_CONFIG *cfg)
+{
+ return (cfg->yk_major_version == 3 &&
+ cfg->yk_minor_version == 0);
+}
+
static bool vcheck_neo(const YKP_CONFIG *cfg)
{
return (cfg->yk_major_version == 2 &&
return vcheck_v23_or_greater(cfg);
}
+static bool capability_has_led_inv(const YKP_CONFIG *cfg)
+{
+ return (vcheck_v24_or_greater(cfg) && !vcheck_v30(cfg));
+}
+
int ykp_set_oath_imf(YKP_CONFIG *cfg, unsigned long imf)
{
if (!capability_has_oath_imf(cfg)) {
def_set_extflag(FAST_TRIG,capability_has_fast)
def_set_extflag(ALLOW_UPDATE,capability_has_update)
def_set_extflag(DORMANT,capability_has_dormant)
+def_set_extflag(LED_INV,capability_has_led_inv)
const char str_key_value_separator[] = ": ";
const char str_hex_prefix[] = "h:";
{ EXTFLAG_FAST_TRIG, "FAST_TRIG", capability_has_fast, 0 },
{ EXTFLAG_ALLOW_UPDATE, "ALLOW_UPDATE", capability_has_update, 0 },
{ EXTFLAG_DORMANT, "DORMANT", capability_has_dormant, 0 },
+ { EXTFLAG_LED_INV, "LED_INV", capability_has_led_inv, 0 },
{ 0, "", 0, 0 }
};