Files
bind9/lib/dns/win32/libdns.vcxproj.in
Matthijs Mekking 7e7aa5387c Introduce keymgr in named
Add a key manager to named.  If a 'dnssec-policy' is set, 'named'
will run a key manager on the matching keys.  This will do a couple
of things:

1. Create keys when needed (in case of rollover for example)
   according to the set policy.

2. Retire keys that are in excess of the policy.

3. Maintain key states according to "Flexible and Robust Key
   Rollover" [1]. After key manager ran, key files will be saved to
   disk.

   [1] https://matthijsmekking.nl/static/pdf/satin2012-Schaeffer.pdf

KEY GENERATION

Create keys according to DNSSEC policy.  Zones configured with
'dnssec-policy' will allow 'named' to create DNSSEC keys (similar
to dnssec-keymgr) if not available.

KEY ROLLOVER

Rather than determining the desired state from timing metadata,
add a key state goal.  Any keys that are created or picked from the
key ring and selected to be a successor has its key state goal set
to OMNIPRESENT (this key wants to be signing!). At the same time,
a key that is being retired has its key state goal set to HIDDEN.

The keymgr state machine with the three rules will make sure no
introduction or withdrawal of DNSSEC records happens too soon.

KEY TIMINGS

All timings are based on RFC 7583.

The keymgr will return when the next action is happening so
that the zone can set the proper rekey event. Prior to this change
the rekey event will run every hour by default (configurable),
but with kasp we can determine exactly when we need to run again.

The prepublication time is derived from policy.
2019-11-06 22:36:21 +01:00

344 lines
17 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="@TOOLS_VERSION@" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|@PLATFORM@">
<Configuration>Debug</Configuration>
<Platform>@PLATFORM@</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|@PLATFORM@">
<Configuration>Release</Configuration>
<Platform>@PLATFORM@</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{5FEBFD4E-CCB0-48B9-B733-E15EEB85C16A}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
<RootNamespace>libdns</RootNamespace>
@WINDOWS_TARGET_PLATFORM_VERSION@
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>MultiByte</CharacterSet>
@PLATFORM_TOOLSET@
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>MultiByte</CharacterSet>
@PLATFORM_TOOLSET@
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'">
<LinkIncremental>true</LinkIncremental>
<OutDir>..\..\..\Build\$(Configuration)\</OutDir>
<IntDir>.\$(Configuration)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'">
<LinkIncremental>false</LinkIncremental>
<OutDir>..\..\..\Build\$(Configuration)\</OutDir>
<IntDir>.\$(Configuration)\</IntDir>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'">
<ClCompile>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>BIND9;WIN32;@USE_GSSAPI@@USE_ISC_SPNEGO@_DEBUG;_WINDOWS;_USRDLL;LIBDNS_EXPORTS;%(PreprocessorDefinitions);%(PreprocessorDefinitions);%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ForcedIncludeFiles>..\..\..\config.h</ForcedIncludeFiles>
<AdditionalIncludeDirectories>.\;..\..\..\;include;..\include;..\..\isc;..\..\isc\win32;..\..\isc\win32\include;..\..\isc\include;@LIBXML2_INC@@OPENSSL_INC@@GSSAPI_INC@@GEOIP_INC@%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<FunctionLevelLinking>true</FunctionLevelLinking>
<PrecompiledHeaderOutputFile>.\$(Configuration)\$(TargetName).pch</PrecompiledHeaderOutputFile>
<AssemblerListingLocation>.\$(Configuration)\</AssemblerListingLocation>
<ObjectFileName>.\$(Configuration)\</ObjectFileName>
<ProgramDataBaseFileName>$(OutDir)$(TargetName).pdb</ProgramDataBaseFileName>
<BrowseInformation>true</BrowseInformation>
<CompileAs>CompileAsC</CompileAs>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<OutputFile>..\..\..\Build\$(Configuration)\$(TargetName)$(TargetExt)</OutputFile>
<AdditionalLibraryDirectories>..\..\isc\win32\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies>@OPENSSL_LIB@libisc.lib;@LIBXML2_LIB@@GSSAPI_LIB@@KRB5_LIB@@GEOIP_LIB@ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<ModuleDefinitionFile>$(ProjectName).def</ModuleDefinitionFile>
<ImportLibrary>.\$(Configuration)\$(ProjectName).lib</ImportLibrary>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<PrecompiledHeader>
</PrecompiledHeader>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>@INTRINSIC@</IntrinsicFunctions>
<PreprocessorDefinitions>BIND9;WIN32;@USE_GSSAPI@@USE_ISC_SPNEGO@NDEBUG;_WINDOWS;_USRDLL;LIBDNS_EXPORTS;%(PreprocessorDefinitions);%(PreprocessorDefinitions);%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ForcedIncludeFiles>..\..\..\config.h</ForcedIncludeFiles>
<AdditionalIncludeDirectories>.\;..\..\..\;include;..\include;..\..\isc;..\..\isc\win32;..\..\isc\win32\include;..\..\isc\include;@LIBXML2_INC@@OPENSSL_INC@@GSSAPI_INC@@GEOIP_INC@%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<StringPooling>true</StringPooling>
<PrecompiledHeaderOutputFile>.\$(Configuration)\$(TargetName).pch</PrecompiledHeaderOutputFile>
<AssemblerListingLocation>.\$(Configuration)\</AssemblerListingLocation>
<ObjectFileName>.\$(Configuration)\</ObjectFileName>
<ProgramDataBaseFileName>$(OutDir)$(TargetName).pdb</ProgramDataBaseFileName>
<WholeProgramOptimization>false</WholeProgramOptimization>
<CompileAs>CompileAsC</CompileAs>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>false</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<OutputFile>..\..\..\Build\$(Configuration)\$(TargetName)$(TargetExt)</OutputFile>
<AdditionalLibraryDirectories>..\..\isc\win32\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies>@OPENSSL_LIB@libisc.lib;@LIBXML2_LIB@@GSSAPI_LIB@@KRB5_LIB@@GEOIP_LIB@ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<ModuleDefinitionFile>$(ProjectName).def</ModuleDefinitionFile>
<ImportLibrary>.\$(Configuration)\$(ProjectName).lib</ImportLibrary>
<LinkTimeCodeGeneration>Default</LinkTimeCodeGeneration>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<None Include="libdns.def" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\acl.c" />
<ClCompile Include="..\adb.c" />
<ClCompile Include="..\badcache.c" />
<ClCompile Include="..\byaddr.c" />
<ClCompile Include="..\cache.c" />
<ClCompile Include="..\callbacks.c" />
<ClCompile Include="..\catz.c" />
<ClCompile Include="..\client.c" />
<ClCompile Include="..\clientinfo.c" />
<ClCompile Include="..\compress.c" />
<ClCompile Include="..\db.c" />
<ClCompile Include="..\dbiterator.c" />
<ClCompile Include="..\dbtable.c" />
<ClCompile Include="..\diff.c" />
<ClCompile Include="..\dispatch.c" />
<ClCompile Include="..\dlz.c" />
<ClCompile Include="..\dns64.c" />
<ClCompile Include="..\dnssec.c" />
<ClCompile Include="..\ds.c" />
<ClCompile Include="..\dst_api.c" />
<ClCompile Include="..\dst_parse.c" />
<ClCompile Include="..\dst_result.c" />
<ClCompile Include="..\dyndb.c" />
<ClCompile Include="..\ecdb.c" />
<ClCompile Include="..\ecs.c" />
<ClCompile Include="..\fixedname.c" />
<ClCompile Include="..\forward.c" />
@IF GEOIP
<ClCompile Include="..\geoip2.c" />
@END GEOIP
<ClCompile Include="..\gssapictx.c" />
<ClCompile Include="..\gssapi_link.c" />
<ClCompile Include="..\hmac_link.c" />
<ClCompile Include="..\ipkeylist.c" />
<ClCompile Include="..\iptable.c" />
<ClCompile Include="..\journal.c" />
<ClCompile Include="..\kasp.c" />
<ClCompile Include="..\key.c" />
<ClCompile Include="..\keymgr.c" />
<ClCompile Include="..\keydata.c" />
<ClCompile Include="..\keytable.c" />
<ClCompile Include="..\lib.c" />
<ClCompile Include="..\log.c" />
<ClCompile Include="..\lookup.c" />
<ClCompile Include="..\master.c" />
<ClCompile Include="..\masterdump.c" />
<ClCompile Include="..\message.c" />
<ClCompile Include="..\name.c" />
<ClCompile Include="..\ncache.c" />
<ClCompile Include="..\nsec.c" />
<ClCompile Include="..\nsec3.c" />
<ClCompile Include="..\nta.c" />
<ClCompile Include="..\openssldh_link.c" />
<ClCompile Include="..\opensslecdsa_link.c" />
<ClCompile Include="..\openssleddsa_link.c" />
<ClCompile Include="..\opensslrsa_link.c" />
<ClCompile Include="..\openssl_link.c" />
<ClCompile Include="..\order.c" />
<ClCompile Include="..\peer.c" />
@IF PKCS11
<ClCompile Include="..\pkcs11.c" />
<ClCompile Include="..\pkcs11ecdsa_link.c" />
<ClCompile Include="..\pkcs11eddsa_link.c" />
<ClCompile Include="..\pkcs11rsa_link.c" />
@END PKCS11
<ClCompile Include="..\portlist.c" />
<ClCompile Include="..\private.c" />
<ClCompile Include="..\rbt.c" />
<ClCompile Include="..\rbtdb.c" />
<ClCompile Include="..\rcode.c" />
<ClCompile Include="..\rdata.c" />
<ClCompile Include="..\rdatalist.c" />
<ClCompile Include="..\rdataset.c" />
<ClCompile Include="..\rdatasetiter.c" />
<ClCompile Include="..\rdataslab.c" />
<ClCompile Include="..\request.c" />
<ClCompile Include="..\resolver.c" />
<ClCompile Include="..\result.c" />
<ClCompile Include="..\rootns.c" />
<ClCompile Include="..\rpz.c" />
<ClCompile Include="..\rriterator.c" />
<ClCompile Include="..\rrl.c" />
<ClCompile Include="..\sdb.c" />
<ClCompile Include="..\sdlz.c" />
<ClCompile Include="..\soa.c" />
<ClCompile Include="..\spnego.c" />
<ClCompile Include="..\ssu.c" />
<ClCompile Include="..\ssu_external.c" />
<ClCompile Include="..\stats.c" />
<ClCompile Include="..\tcpmsg.c" />
<ClCompile Include="..\time.c" />
<ClCompile Include="..\timer.c" />
<ClCompile Include="..\tkey.c" />
<ClCompile Include="..\tsec.c" />
<ClCompile Include="..\tsig.c" />
<ClCompile Include="..\ttl.c" />
<ClCompile Include="..\update.c" />
<ClCompile Include="..\validator.c" />
<ClCompile Include="..\view.c" />
<ClCompile Include="..\xfrin.c" />
<ClCompile Include="..\zone.c" />
<ClCompile Include="..\zonekey.c" />
<ClCompile Include="..\zoneverify.c" />
<ClCompile Include="..\zt.c" />
<ClCompile Include="DLLMain.c" />
<ClCompile Include="version.c" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\code.h" />
<ClInclude Include="..\dst_internal.h" />
<ClInclude Include="..\dst_openssl.h" />
<ClInclude Include="..\dst_parse.h" />
@IF PKCS11
<ClInclude Include="..\dst_pkcs11.h" />
@END PKCS11
<ClInclude Include="..\include\dns\acl.h" />
<ClInclude Include="..\include\dns\adb.h" />
<ClInclude Include="..\include\dns\badcache.h" />
<ClInclude Include="..\include\dns\bit.h" />
<ClInclude Include="..\include\dns\byaddr.h" />
<ClInclude Include="..\include\dns\cache.h" />
<ClInclude Include="..\include\dns\callbacks.h" />
<ClInclude Include="..\include\dns\catz.h" />
<ClInclude Include="..\include\dns\cert.h" />
<ClInclude Include="..\include\dns\client.h" />
<ClInclude Include="..\include\dns\clientinfo.h" />
<ClInclude Include="..\include\dns\compress.h" />
<ClInclude Include="..\include\dns\db.h" />
<ClInclude Include="..\include\dns\dbiterator.h" />
<ClInclude Include="..\include\dns\dbtable.h" />
<ClInclude Include="..\include\dns\diff.h" />
<ClInclude Include="..\include\dns\dispatch.h" />
<ClInclude Include="..\include\dns\dlz.h" />
<ClInclude Include="..\include\dns\dns64.h" />
<ClInclude Include="..\include\dns\dnssec.h" />
<ClInclude Include="..\include\dns\dnstap.h" />
<ClInclude Include="..\include\dns\ds.h" />
<ClInclude Include="..\include\dns\dsdigest.h" />
<ClInclude Include="..\include\dns\dyndb.h" />
<ClInclude Include="..\include\dns\ecdb.h" />
<ClInclude Include="..\include\dns\ecs.h" />
<ClInclude Include="..\include\dns\edns.h" />
<ClInclude Include="..\include\dns\enumclass.h" />
<ClInclude Include="..\include\dns\enumtype.h" />
<ClInclude Include="..\include\dns\events.h" />
<ClInclude Include="..\include\dns\fixedname.h" />
<ClInclude Include="..\include\dns\forward.h" />
@IF GEOIP
<ClInclude Include="..\include\dns\geoip.h" />
@END GEOIP
<ClInclude Include="..\include\dns\ipkeylist.h" />
<ClInclude Include="..\include\dns\iptable.h" />
<ClInclude Include="..\include\dns\journal.h" />
<ClInclude Include="..\include\dns\kasp.h" />
<ClInclude Include="..\include\dns\keydata.h" />
<ClInclude Include="..\include\dns\keyflags.h" />
<ClInclude Include="..\include\dns\keymgr.h" />
<ClInclude Include="..\include\dns\keytable.h" />
<ClInclude Include="..\include\dns\keyvalues.h" />
<ClInclude Include="..\include\dns\lib.h" />
<ClInclude Include="..\include\dns\log.h" />
<ClInclude Include="..\include\dns\lookup.h" />
<ClInclude Include="..\include\dns\master.h" />
<ClInclude Include="..\include\dns\masterdump.h" />
<ClInclude Include="..\include\dns\message.h" />
<ClInclude Include="..\include\dns\name.h" />
<ClInclude Include="..\include\dns\ncache.h" />
<ClInclude Include="..\include\dns\nsec.h" />
<ClInclude Include="..\include\dns\nsec3.h" />
<ClInclude Include="..\include\dns\nta.h" />
<ClInclude Include="..\include\dns\opcode.h" />
<ClInclude Include="..\include\dns\order.h" />
<ClInclude Include="..\include\dns\peer.h" />
<ClInclude Include="..\include\dns\portlist.h" />
<ClInclude Include="..\include\dns\private.h" />
<ClInclude Include="..\include\dns\rbt.h" />
<ClInclude Include="..\include\dns\rcode.h" />
<ClInclude Include="..\include\dns\rdata.h" />
<ClInclude Include="..\include\dns\rdataclass.h" />
<ClInclude Include="..\include\dns\rdatalist.h" />
<ClInclude Include="..\include\dns\rdataset.h" />
<ClInclude Include="..\include\dns\rdatasetiter.h" />
<ClInclude Include="..\include\dns\rdataslab.h" />
<ClInclude Include="..\include\dns\rdatastruct.h" />
<ClInclude Include="..\include\dns\rdatatype.h" />
<ClInclude Include="..\include\dns\request.h" />
<ClInclude Include="..\include\dns\resolver.h" />
<ClInclude Include="..\include\dns\result.h" />
<ClInclude Include="..\include\dns\rootns.h" />
<ClInclude Include="..\include\dns\rpz.h" />
<ClInclude Include="..\include\dns\rriterator.h" />
<ClInclude Include="..\include\dns\rrl.h" />
<ClInclude Include="..\include\dns\sdb.h" />
<ClInclude Include="..\include\dns\sdlz.h" />
<ClInclude Include="..\include\dns\secalg.h" />
<ClInclude Include="..\include\dns\secproto.h" />
<ClInclude Include="..\include\dns\soa.h" />
<ClInclude Include="..\include\dns\ssu.h" />
<ClInclude Include="..\include\dns\stats.h" />
<ClInclude Include="..\include\dns\tcpmsg.h" />
<ClInclude Include="..\include\dns\time.h" />
<ClInclude Include="..\include\dns\timer.h" />
<ClInclude Include="..\include\dns\tkey.h" />
<ClInclude Include="..\include\dns\tsec.h" />
<ClInclude Include="..\include\dns\tsig.h" />
<ClInclude Include="..\include\dns\ttl.h" />
<ClInclude Include="..\include\dns\types.h" />
<ClInclude Include="..\include\dns\update.h" />
<ClInclude Include="..\include\dns\validator.h" />
<ClInclude Include="..\include\dns\version.h" />
<ClInclude Include="..\include\dns\view.h" />
<ClInclude Include="..\include\dns\xfrin.h" />
<ClInclude Include="..\include\dns\zone.h" />
<ClInclude Include="..\include\dns\zonekey.h" />
<ClInclude Include="..\include\dns\zoneverify.h" />
<ClInclude Include="..\include\dns\zt.h" />
<ClInclude Include="..\include\dst\dst.h" />
<ClInclude Include="..\include\dst\gssapi.h" />
<ClInclude Include="..\include\dst\result.h" />
<ClInclude Include="..\rbtdb.h" />
<ClInclude Include="..\rdatalist_p.h" />
<ClInclude Include="..\spnego.h" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>