servnest/public/reg/ds.php

102 lines
3.3 KiB
PHP

<?php require "../../common/html.php"; ?>
<form method="post">
<label for="action">Action</label>
<select name="action" id="action">
<option value="add">Ajouter</option>
<option value="delete">Retirer</option>
</select>
<br>
<label for="zone">Domaine</label>
<br>
<select required="" name="zone" id="zone">
<option value="" disabled="" selected="">---</option>
<?php
if (isset($_SESSION['username'])) {
$domains = regListUserDomains($_SESSION['username']);
foreach($domains as $domain)
echo " <option value='" . $domain . "'>" . $domain . "</option>";
}
?>
</select>
<br>
<label for="keytag">Tag de la clé</label>
<br>
<input required="" id="keytag" placeholder="32768" min="1" max="65535" name="keytag" type="number"><span></span>
<br>
<label for="algo">Algorithme</label>
<br>
<select required="" name="algo" id="algo">
<!-- RFC 8624 : Algorithm Implementation Requirements and Usage Guidance for DNSSEC > Algorithm Selection > DNSKEY Algorithms -->
<!-- https://tools.ietf.org/html/rfc8624.html#section-3.1 -->
<option value="1" disabled="">1 (RSAMD5)</option>
<option value="3" disabled="">3 (DSA)</option>
<option value="5" disabled="">5 (RSASHA1)</option>
<option value="6" disabled="">6 (DSA-NSEC3-SHA1)</option>
<option value="7" disabled="">7 (RSASHA1-NSEC3-SHA1)</option>
<option value="8">8 (RSASHA256)</option>
<option value="10" disabled="">10 (RSASHA512)</option>
<option value="12" disabled="">12 (ECC-GOST)</option>
<option value="13">13 (ECDSAP256SHA256)</option>
<option value="14">14 (ECDSAP384SHA384)</option>
<option value="15" selected="">15 (ED25519)</option>
<option value="16">16 (ED448)</option>
</select>
<br>
<label for="dt">Type de condensat</label>
<br>
<select required="" name="dt" id="dt">
<!-- RFC 8624 : Algorithm Implementation Requirements and Usage Guidance for DNSSEC > Algorithm Selection > DS and CDS Algorithms -->
<!-- https://tools.ietf.org/html/rfc8624.html#section-3.3 -->
<option value="1" disabled="">1 (SHA-1)</option>
<option value="2" selected="">2 (SHA-256)</option>
<option value="3" disabled="">3 (GOST R 34.11-94)</option>
<option value="4">4 (SHA-384)</option>
</select>
<br>
<label for="key">Delegation Signer</label>
<br>
<input id="key" required="" name="key" type="text" placeholder="018F25E4A022463478C9E30136EC53771A1704A0F0B3CE5B883AC9C8A6A55D16B638B4DE70662ACA5295D3669E7CADD9">
<br>
<input value="Valider" type="submit">
</form>
<?php
switchToFormProcess();
if (
($_POST['algo'] !== "8")
AND ($_POST['algo'] !== "13")
AND ($_POST['algo'] !== "14")
AND ($_POST['algo'] !== "15")
AND ($_POST['algo'] !== "16")
) userError("Wrong value for <code>algo</code>.");
$_POST['keytag'] = intval($_POST['keytag']);
if ((!preg_match("/^[0-9]{1,6}$/", $_POST['keytag'])) OR !($_POST['keytag'] >= 1) OR !($_POST['keytag'] <= 65535))
userError("Wrong value for <code>keytag</code>.");
if ($_POST['dt'] !== "2" AND $_POST['dt'] !== "4")
userError("Wrong value for <code>dt</code>.");
regCheckDomainPossession($_POST['zone']);
$action = checkAction($_POST['action']);
$suffix = regGetUpperDomain($_POST['zone']);
knotcExec($suffix, array(
$_POST['zone'],
CONF['reg']['ttl'],
"DS",
$_POST['keytag'],
$_POST['algo'],
$_POST['dt'],
$_POST['key']
));
success("La requête a été envoyée à Knot");