106 lines
3.7 KiB
PHP
106 lines
3.7 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
|
|
$domains = regListUserDomains($_SESSION['username']);
|
|
|
|
if ($domains) {
|
|
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
|
|
|
|
if (isset($_POST['zone']) AND isset($_POST['keytag']) AND isset($_POST['algo']) AND isset($_POST['key']) AND isset($_SESSION['username'])) {
|
|
|
|
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>.");
|
|
|
|
checkAbsoluteDomainFormat($_POST['zone']);
|
|
nsCheckZonePossession($_POST['zone']);
|
|
regCheckDomainPossession($_POST['zone']);
|
|
|
|
$action = checkAction($_POST['action']);
|
|
|
|
$suffix = regGetUpperDomain($_POST['zone']);
|
|
|
|
exec(CONF['reg']['knotc_path'] . " zone-begin " . $suffix);
|
|
exec(CONF['reg']['knotc_path'] . " zone-" . $action . "set " . $suffix . " " . $_POST['zone'] . " 86400 IN DS " . $_POST['keytag'] . " " . $_POST['algo'] . " " . $_POST['dt'] . " " . $_POST['key']);
|
|
exec(CONF['reg']['knotc_path'] . " zone-commit " . $suffix);
|
|
echo "La requête a été envoyée à Knot";
|
|
}
|
|
|
|
|
|
?>
|
|
|
|
<?php closeHTML(); ?>
|