Remove unimplemented Keyrelay feature

Closes #715
This commit is contained in:
Artur Beljajev 2019-09-17 14:52:21 +03:00
parent 0893d5b6f2
commit fc71bf93e7
46 changed files with 21 additions and 1487 deletions

View file

@ -1,13 +0,0 @@
module Admin
class KeyrelaysController < BaseController
load_and_authorize_resource
def index
@q = Keyrelay.includes(:requester, :accepter).search(params[:q])
@keyrelays = @q.result.page(params[:page])
end
def show;
end
end
end

View file

@ -58,7 +58,7 @@ module Epp
end
def validate_against_schema
return if ['hello', 'error', 'keyrelay'].include?(params[:action])
return if %w[hello error].include?(params[:action])
schema.validate(params[:nokogiri_frame]).each do |error|
epp_errors << {
code: 2001,

View file

@ -1,63 +0,0 @@
module Epp
class KeyrelaysController < BaseController
skip_authorization_check # TODO: move authorization under ability
def keyrelay
# keyrelay temp turned off
@domain = find_domain
handle_errors(@domain) and return unless @domain
handle_errors(@domain) and return unless @domain.authenticate(params[:parsed_frame].css('pw').text)
handle_errors(@domain) and return unless @domain.keyrelay(params[:parsed_frame], current_user.registrar)
render_epp_response '/epp/shared/success'
end
private
def validate_keyrelay
@prefix = 'keyrelay >'
requires(
'name',
'keyData', 'keyData > pubKey', 'keyData > flags', 'keyData > protocol', 'keyData > alg',
'authInfo', 'authInfo > pw'
)
optional 'expiry > relative', duration_iso8601: true
optional 'expiry > absolute', date_time_iso8601: true
exactly_one_of 'expiry > relative', 'expiry > absolute'
end
def find_domain
domain_name = params[:parsed_frame].css('name').text.strip.downcase
# keyrelay temp turned off
epp_errors << {
code: '2307',
msg: I18n.t(:unimplemented_object_service),
value: { obj: 'name', val: domain_name }
}
nil
# end of keyrelay temp turned off
# domain = Epp::Domain.includes(:registrant).find_by(name: domain_name)
# unless domain
# epp_errors << {
# code: '2303',
# msg: I18n.t('errors.messages.epp_domain_not_found'),
# value: { obj: 'name', val: domain_name }
# }
# return nil
# end
# domain
end
def resource
@domain
end
end
end

View file

@ -29,11 +29,7 @@ module Epp
end
end
if @notification.attached_obj_type == 'Keyrelay'
render_epp_response 'epp/poll/poll_keyrelay'
else
render_epp_response 'epp/poll/poll_req'
end
render_epp_response 'epp/poll/poll_req'
end
def ack_poll

View file

@ -1,20 +0,0 @@
class Registrar
class KeyrelaysController < DeppController
def show
authorize! :view, Depp::Keyrelay
end
def create
authorize! :create, Depp::Keyrelay
keyrelay = Depp::Keyrelay.new(current_user: depp_current_user)
@data = keyrelay.keyrelay(params)
if response_ok?
flash[:epp_results] = [{ 'code' => '1000', 'msg' => 'Command completed successfully', 'show' => true }]
redirect_to registrar_keyrelay_path
else
render 'show'
end
end
end
end

View file

@ -26,21 +26,6 @@ class Registrar
render 'show'
end
# TODO: Keyrelay is disabled for now
# def confirm_keyrelay
# authorize! :confirm, :keyrelay
# domain_params = params[:domain]
# @data = @domain.confirm_keyrelay(domain_params)
# if response_ok?
# redirect_to info_registrar_domains_url(domain_name: domain_params[:name])
# else
# @results = @data.css('result')
# @data = depp_current_user.request(@ex.poll)
# render 'show'
# end
# end
def confirm_transfer
domain_params = params[:domain]
@data = @domain.confirm_transfer(domain_params)

View file

@ -34,8 +34,6 @@ class Ability
if @user.registrar.api_ip_white?(@ip)
can :manage, :poll
can :manage, Depp::Contact
# can :manage, Depp::Keyrelay # TODO: Keyrelay is disabled for now
# can :confirm, :keyrelay # TODO: Keyrelay is disabled for now
can :manage, :xml_console
can :manage, Depp::Domain
end
@ -95,7 +93,6 @@ class Ability
can :manage, ApiUser
can :manage, AdminUser
can :manage, Certificate
can :manage, Keyrelay
can :manage, LegalDocument
can :manage, BankStatement
can :manage, BankTransaction

View file

@ -121,16 +121,6 @@ module Depp
}, op, Domain.construct_custom_params_hash(params)))
end
def confirm_keyrelay(domain_params)
xml = epp_xml.update({
name: { value: domain_params[:name] }
}, {
add: Domain.create_dnskeys_hash(domain_params)
})
current_user.request(xml)
end
def confirm_transfer(domain_params)
data = current_user.request(epp_xml.info(name: { value: domain_params[:name] }))
pw = data.css('pw').text

View file

@ -1,45 +0,0 @@
module Depp
class Keyrelay
attr_accessor :current_user, :epp_xml
def initialize(args = {})
self.current_user = args[:current_user]
self.epp_xml = EppXml::Keyrelay.new(cl_trid_prefix: current_user.tag)
end
def keyrelay(params)
custom_params = {}
if params[:legal_document].present?
type = params[:legal_document].original_filename.split('.').last.downcase
custom_params = {
_anonymus: [
legalDocument: { value: Base64.encode64(params[:legal_document].read), attrs: { type: type } }
]
}
end
xml = epp_xml.keyrelay({
name: { value: params['domain_name'] },
keyData: {
flags: { value: params['key_data_flags'] },
protocol: { value: params['key_data_protocol'] },
alg: { value: params['key_data_alg'] },
pubKey: { value: params['key_data_public_key'] }
},
authInfo: {
pw: { value: params['password'] }
},
expiry: expiry(params['expiry'])
}, custom_params)
current_user.request(xml)
end
def expiry(value)
ISO8601::Duration.new(value)
{ relative: { value: value } }
rescue => _e
{ absolute: { value: value } }
end
end
end

View file

@ -51,7 +51,6 @@ class Domain < ActiveRecord::Base
has_many :dnskeys, dependent: :destroy
has_many :keyrelays
has_one :whois_record # destroyment will be done in after_commit
accepts_nested_attributes_for :dnskeys, allow_destroy: true

View file

@ -691,52 +691,6 @@ class Epp::Domain < Domain
pt
end
def keyrelay(parsed_frame, requester)
if registrar == requester
errors.add(:base, :domain_already_belongs_to_the_querying_registrar) and return false
end
abs_datetime = parsed_frame.css('absolute').text
abs_datetime = DateTime.zone.parse(abs_datetime) if abs_datetime.present?
transaction do
kr = keyrelays.build(
pa_date: Time.zone.now,
key_data_flags: parsed_frame.css('flags').text,
key_data_protocol: parsed_frame.css('protocol').text,
key_data_alg: parsed_frame.css('alg').text,
key_data_public_key: parsed_frame.css('pubKey').text,
auth_info_pw: parsed_frame.css('pw').text,
expiry_relative: parsed_frame.css('relative').text,
expiry_absolute: abs_datetime,
requester: requester,
accepter: registrar
)
legal_document_data = self.class.parse_legal_document_from_frame(parsed_frame)
if legal_document_data
kr.legal_documents.build(
document_type: legal_document_data[:type],
body: legal_document_data[:body]
)
end
kr.save
return false unless valid?
registrar.notifications.create!(
text: 'Key Relay action completed successfully.',
attached_obj_type: kr.class.to_s,
attached_obj_id: kr.id
)
end
true
end
### VALIDATIONS ###
def validate_exp_dates(cur_exp_date)
begin
return if cur_exp_date.to_date == valid_to.to_date

View file

@ -1,61 +0,0 @@
class Keyrelay < ActiveRecord::Base
include Versions # version/keyrelay_version.rb
include EppErrors
belongs_to :domain
belongs_to :requester, class_name: 'Registrar'
belongs_to :accepter, class_name: 'Registrar'
has_many :legal_documents, as: :documentable
delegate :name, to: :domain, prefix: true
validates :domain, :key_data_public_key, :key_data_flags, :key_data_protocol,
:key_data_alg, :auth_info_pw, presence: true
validates :expiry_relative, duration_iso8601: true
validate :validate_expiry_relative_xor_expiry_absolute
after_save :touch_domain_version
def epp_code_map
{
'2005' => [
[:expiry_relative, :unknown_pattern, { value: { obj: 'relative', val: expiry_relative } }]
],
'2003' => [
# TODO: Remove only_one_parameter_allowed and other params that are validated in controller?
[:base, :only_one_parameter_allowed, { param_1: 'relative', param_2: 'absolute' }],
[:key_data_public_key, :blank],
[:key_data_flags, :blank],
[:key_data_protocol, :blank],
[:key_data_alg, :blank],
[:auth_info_pw, :blank]
]
}
end
def expiry
if expiry_relative.present?
pa_date + ISO8601::Duration.new(expiry_relative).to_seconds
elsif expiry_absolute
expiry_absolute
end
end
def status
if Time.zone.now > expiry
return 'expired'
else
return 'pending'
end
end
private
def validate_expiry_relative_xor_expiry_absolute
return if expiry_relative.blank? ^ expiry_absolute.blank?
errors.add(:base, I18n.t(:only_one_parameter_allowed, param_1: 'relative', param_2: 'absolute'))
end
end

View file

@ -1,5 +0,0 @@
class KeyrelayVersion < PaperTrail::Version
include VersionSession
self.table_name = :log_keyrelays
self.sequence_name = :log_keyrelays_id_seq
end

View file

@ -6,8 +6,6 @@
%li= link_to t(:contacts), admin_contacts_path
- if can? :show, Registrar
%li= link_to t(:registrars), admin_registrars_path
- if can? :show, Keyrelay
%li= link_to t(:keyrelays), admin_keyrelays_path
- if can?(:access, :settings_menu)
%li.dropdown
%a.dropdown-toggle{"data-toggle" => "dropdown", href: "#"}

View file

@ -1,20 +0,0 @@
.panel{class: 'panel-default'}
.panel-heading.clearfix
= t(:keyrelays)
.table-responsive
%table.table.table-hover.table-bordered.table-condensed
%thead
%tr
%th{class: 'col-xs-4'}= t(:uploaded_at)
%th{class: 'col-xs-3'}= t(:expiry)
%th{class: 'col-xs-2'}= t(:requester)
%th{class: 'col-xs-2'}= t(:accepter)
%th{class: 'col-xs-1'}= t(:status)
%tbody
- @domain.keyrelays.includes([:requester, :accepter]).order(pa_date: :desc).each do |x|
%tr
%td= link_to(x.pa_date, [:admin, x])
%td= x.expiry
%td= link_to(x.requester, [:admin, x.requester])
%td= link_to(x.accepter, [:admin, x.accepter])
%td= x.status

View file

@ -57,12 +57,6 @@
</div>
</div>
<div class="row">
<div class="col-md-12">
<%= render 'admin/domains/partials/keyrelays' %>
</div>
</div>
<div class="row">
<div class="col-md-12">
<%= render 'admin/domains/partials/legal_documents', legal_documents:

View file

@ -8,10 +8,10 @@
.col-md-3
.form-group
= f.label :request_command
= f.select :request_command_eq, [[t(:choose),''], 'hello', 'login', 'logout', 'info', 'create', 'update', 'delete', 'check', 'renew', 'transfer', 'poll', 'keyrelay'], {}, class: 'form-control selectize', placeholder: t(:choose)
= f.select :request_command_eq, [[t(:choose),''], 'hello', 'login', 'logout', 'info', 'create', 'update', 'delete', 'check', 'renew', 'transfer', 'poll'], {}, class: 'form-control selectize', placeholder: t(:choose)
.col-md-3
.form-group
- opts = [[t(:choose),''], 'contact', 'domain', 'poll', 'keyrelay']
- opts = [[t(:choose),''], 'contact', 'domain', 'poll']
- opts += [params[:q][:request_object_cont]] if params[:q].present? && params[:q][:request_object_cont].present?
= f.label :request_object
= f.select :request_object_cont, opts, {}, class: 'form-control selectize_create', placeholder: t(:choose)

View file

@ -1,42 +0,0 @@
= render 'shared/title', name: t(:keyrelays)
.row
.col-md-12
= search_form_for [:admin, @q], html: { class: 'form-horizontal' } do |f|
.col-md-11
.form-group
= f.search_field :domain_name_cont, class: 'form-control', placeholder: t(:domain_name)
.col-md-1.text-right.text-center-xs
.form-group
%button.btn.btn-primary
&nbsp;
%span.glyphicon.glyphicon-search
&nbsp;
%hr
.row
.col-md-12
.table-responsive
%table.table.table-hover.table-bordered.table-condensed
%thead
%tr
%th{class: 'col-xs-4'}
= sort_link(@q, 'pa_date', t(:uploaded_at))
%th{class: 'col-xs-3'}
= t(:expiry)
%th{class: 'col-xs-2'}
= sort_link(@q, 'requester_name', t(:requester))
%th{class: 'col-xs-2'}
= sort_link(@q, 'accepter_name', t(:accepter))
%th{class: 'col-xs-1'}
= t(:status)
%tbody
- @keyrelays.each do |x|
%tr
%td= link_to(x.pa_date, [:admin, x])
%td= x.expiry
%td= link_to(x.requester, [:admin, x.requester])
%td= link_to(x.accepter, [:admin, x.accepter])
%td= x.status
.row
.col-md-12
= paginate @keyrelays

View file

@ -1,61 +0,0 @@
= render 'shared/title', name: t(:keyrelay_details)
.row
.col-md-12
.panel.panel-default
.panel-heading
%h3.panel-title= t(:keyrelay)
.panel-body{style: 'word-wrap: break-word;'}
%dl.dl-horizontal
%dt= t(:uploaded_at)
%dd= @keyrelay.pa_date
%dt= t(:domain)
%dd= link_to(@keyrelay.domain, [:admin, @keyrelay.domain])
%dt= t(:status)
%dd= @keyrelay.status
%dt= t(:flag)
%dd= @keyrelay.key_data_flags
%dt= t(:protocol)
%dd= @keyrelay.key_data_protocol
%dt= t(:algorithm)
%dd= @keyrelay.key_data_alg
%dt= t(:public_key)
%dd= @keyrelay.key_data_public_key
%dt= t(:authinfo_pw)
%dd= @keyrelay.auth_info_pw
%dt= t(:expiry_relative)
%dd= @keyrelay.expiry_relative
%dt= t(:expiry_absolute)
%dd= @keyrelay.expiry_absolute
%dt= t(:requester)
%dd= link_to(@keyrelay.requester, [:admin, @keyrelay.requester])
%dt= t(:accepter)
%dd= link_to(@keyrelay.accepter, [:admin, @keyrelay.accepter])
.row
.col-md-12
.panel.panel-default
.panel-heading.clearfix
= t(:legal_documents)
.table-responsive
%table.table.table-hover.table-bordered.table-condensed
%thead
%tr
%th{class: 'col-xs-8'}= t(:created_at)
%th{class: 'col-xs-4'}= t(:type)
%tbody
- @keyrelay.legal_documents.each do |x|
%tr
%td= link_to(x.created_at, [:admin, x])
%td= x.document_type

View file

@ -1,49 +0,0 @@
xml.instruct!(:xml, standalone: 'no')
xml.epp(
'xmlns' => 'https://epp.tld.ee/schema/epp-ee-1.0.xsd',
'xmlns:secDNS' => 'urn:ietf:params:xml:ns:secDNS-1.1',
'xmlns:domain' => 'https://epp.tld.ee/schema/domain-eis-1.0.xsd',
'xmlns:keyrelay' => 'urn:ietf:params:xml:ns:keyrelay-1.0'
) do
xml.response do
xml.result('code' => '1301') do
xml.msg 'Command completed successfully; ack to dequeue'
end
xml.tag!('msgQ', 'count' => current_user.unread_notifications.count, 'id' => @notification.id) do
xml.qDate @notification.created_at.try(:iso8601)
xml.msg @notification.text
end
xml.resData do
xml.tag!('keyrelay:response') do
xml.tag!('keyrelay:panData') do
xml.tag!('keyrelay:name', @object.domain_name)
xml.tag!('keyrelay:paDate', @object.pa_date.try(:iso8601))
xml.tag!('keyrelay:keyData') do
xml.tag!('secDNS:flags', @object.key_data_flags)
xml.tag!('secDNS:protocol', @object.key_data_protocol)
xml.tag!('secDNS:alg', @object.key_data_alg)
xml.tag!('secDNS:pubKey', @object.key_data_public_key)
end
xml.tag!('keyrelay:authInfo') do
xml.tag!('domain:pw', @object.auth_info_pw)
end
xml.tag!('keyrelay:expiry') do
xml.tag!('keyrelay:relative', @object.expiry_relative)
xml.tag!('keyrelay:absolute', @object.expiry_absolute)
end
xml.tag!('keyrelay:reID', @object.requester)
xml.tag!('keyrelay:acID', @object.accepter)
end
end
end
render('epp/shared/trID', builder: xml)
end
end

View file

@ -8,7 +8,6 @@ xml.epp_head do
xml.objURI 'https://epp.tld.ee/schema/domain-eis-1.0.xsd'
xml.objURI 'https://epp.tld.ee/schema/contact-ee-1.1.xsd'
xml.objURI 'urn:ietf:params:xml:ns:host-1.0'
xml.objURI 'urn:ietf:params:xml:ns:keyrelay-1.0'
xml.svcExtension do
xml.extURI 'urn:ietf:params:xml:ns:secDNS-1.1'
xml.extURI 'https://epp.tld.ee/schema/eis-1.0.xsd'

View file

@ -41,7 +41,7 @@
<div class="navbar-collapse collapse">
<ul class="nav navbar-nav public-nav">
<% if can? :view, Depp::Domain %>
<% active_class = %w(registrant/domains registrant/check registrant/renew registrant/tranfer registrant/keyrelays).include?(params[:controller]) ? 'active' :nil %>
<% active_class = %w(registrant/domains registrant/check registrant/renew registrant/tranfer).include?(params[:controller]) ? 'active' :nil %>
<li class="<%= active_class %>">
<%= link_to t(:domains), registrant_domains_path %>
</li>

View file

@ -1,20 +0,0 @@
.panel{class: 'panel-default'}
.panel-heading.clearfix
= t(:keyrelays)
.table-responsive
%table.table.table-hover.table-bordered.table-condensed
%thead
%tr
%th{class: 'col-xs-4'}= t(:uploaded_at)
%th{class: 'col-xs-3'}= t(:expiry)
%th{class: 'col-xs-2'}= t(:requester)
%th{class: 'col-xs-2'}= t(:accepter)
%th{class: 'col-xs-1'}= t(:status)
%tbody
- @domain.keyrelays.includes([:requester, :accepter]).order(pa_date: :desc).each do |x|
%tr
%td= link_to(x.pa_date, [:registrar, x])
%td= x.expiry
%td= link_to(x.requester, [:registrar, x.requester])
%td= link_to(x.accepter, [:registrar, x.accepter])
%td= x.status

View file

@ -50,9 +50,3 @@
<%= render 'registrant/domains/partials/dnskeys' %>
</div>
</div>
<div class="row">
<div class="col-md-12">
<%= render 'registrant/domains/partials/keyrelays' %>
</div>
</div>

View file

@ -1,7 +1,7 @@
.navbar-collapse.collapse
%ul.nav.navbar-nav
- if can? :view, Depp::Domain
- active_class = %w(registrar/domains registrar/check registrar/renew registrar/tranfer registrar/keyrelays).include?(params[:controller]) ? 'active' :nil
- active_class = %w(registrar/domains registrar/check registrar/renew registrar/tranfer).include?(params[:controller]) ? 'active' :nil
%li{class: active_class}= link_to t(:domains), registrar_domains_path
- if can? :view, Depp::Contact

View file

@ -1,64 +0,0 @@
= render 'shared/title', name: t(:keyrelay)
.row
.col-md-8
= form_tag registrar_keyrelay_path, class: 'form-horizontal', method: :post, multipart: true do
.form-group
.col-md-3.control-label
= label_tag :domain_name, t(:domain_name), class: 'required'
.col-md-7
= text_field_tag :domain_name, params[:domain_name],
class: 'form-control', autocomplete: 'off', required: true
.form-group
.col-md-3.control-label
= label_tag :password, t(:password), class: 'required'
.col-md-7
= text_field_tag :password, params[:password],
class: 'form-control', autocomplete: 'off', required: true
.form-group
.col-md-3.control-label
= label_tag :expiry, t(:expiry), class: 'required'
.col-md-7
= text_field_tag :expiry, params[:expiry],
class: 'form-control', autocomplete: 'off', required: true
.form-group
.col-md-3.control-label
= label_tag :key_data_flags, t(:flag), class: 'required'
.col-md-7
= select_tag :key_data_flags,
options_for_select(Depp::Dnskey::FLAGS, params['key_data_flags']), {class: 'form-control'}
.form-group
.col-md-3.control-label
= label_tag :key_data_protocol, t(:protocol), class: 'required'
.col-md-7
= select_tag :key_data_protocol,
options_for_select(Depp::Dnskey::PROTOCOLS, params['key_data_protocol']),
{class: 'form-control'}
.form-group
.col-md-3.control-label
= label_tag :key_data_alg, t(:algorithm), class: 'required'
.col-md-7
= select_tag :key_data_alg,
options_for_select(Depp::Dnskey::ALGORITHMS, params['key_data_alg']), {class: 'form-control'}
.form-group
.col-md-3.control-label
= label_tag :key_data_public_key, t(:public_key), class: 'required'
.col-md-7
= text_field_tag :key_data_public_key, params['key_data_public_key'],
class: 'form-control', required: true
.form-group
.col-md-3.control-label
= label_tag :legal_document, t(:legal_document)
.col-md-7
= file_field_tag :legal_document
.form-group
.col-md-10.text-right
%button.btn.btn-warning= t(:upload_key)

View file

@ -10,8 +10,6 @@
.panel-heading.clearfix
.pull-left= t('message_no', id: msg_q['id'])
.pull-right
- if @data.css('panData').any? # this is a keyrelay request
= link_to(t(:confirm), 'javascript: void(0);', class: 'btn btn-warning btn-xs js-keyrelay-confirm')
- if @data.css('trnData trStatus').any? # this is a transfer request
- unless ['serverApproved', 'clientApproved'].include?(@data.css('trStatus').first.text)
= link_to(t(:confirm), 'javascript: void(0);', class: 'btn btn-warning btn-xs js-transfer-confirm')
@ -25,53 +23,14 @@
%dd= @data.css('qDate').text
%dl.dl-horizontal
/ keyrelay
- if @data.css('panData').any?
%dt= t(:domain_name)
%dd= @data.css('name').text
%dt= t(:authinfo_pw)
%dd= @data.css('pw').text
- if @data.css('relative').text.present?
%dt= t(:expiry_relative)
%dd= @data.css('relative').text
- if @data.css('absolute').text.present?
%dt= t(:expiry_absolute)
%dd= @data.css('absolute').text
%dt paDate
%dd= @data.css('paDate').text
%dt= t(:flag)
%dd= @data.css('flags').text
%dt= t(:protocol)
%dd= @data.css('protocol').text
%dt= t(:algorithm)
%dd= @data.css('alg').text
%dt= t(:public_key)
%dd= @data.css('pubKey').text
= form_tag confirm_keyrelay_registrar_poll_path, class: 'js-keyrelay-form' do
- if @data.css('trnData trStatus').any? # this is a transfer request
= form_tag confirm_transfer_registrar_poll_path, class: 'js-transfer-form' do
= hidden_field_tag 'domain[name]', @data.css('name').text
= hidden_field_tag 'domain[dnskeys_attributes][0][flags]', @data.css('flags').text
= hidden_field_tag 'domain[dnskeys_attributes][0][protocol]', @data.css('protocol').text
= hidden_field_tag 'domain[dnskeys_attributes][0][alg]', @data.css('alg').text
= hidden_field_tag 'domain[dnskeys_attributes][0][public_key]', @data.css('pubKey').text
- else
- if @data.css('trnData trStatus').any? # this is a transfer request
= form_tag confirm_transfer_registrar_poll_path, class: 'js-transfer-form' do
= hidden_field_tag 'domain[name]', @data.css('name').text
- @data.css('trnData').children.each do |x|
- next if x.blank?
%dt= t(x.name)
%dd= x.text
- @data.css('trnData').children.each do |x|
- next if x.blank?
%dt= t(x.name)
%dd= x.text
- else
.row
.col-sm-12
@ -83,9 +42,6 @@
:coffee
load_listener = ->
$(".js-keyrelay-confirm").on "click", ->
$(".js-keyrelay-form").submit()
$(".js-transfer-confirm").on "click", ->
$(".js-transfer-form").submit()
window.addEventListener 'load', load_listener

View file

@ -1,24 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<epp xmlns="https://epp.tld.ee/schema/epp-ee-1.0.xsd" xmlns:secDNS="urn:ietf:params:xml:ns:secDNS-1.1" xmlns:domain="https://epp.tld.ee/schema/domain-eis-1.0.xsd" xmlns:ext="urn:ietf:params:xml:ns:keyrelay-1.0">
<command>
<ext:keyrelay>
<ext:name>example6.ee</ext:name>
<ext:keyData>
<secDNS:flags>256</secDNS:flags>
<secDNS:protocol>3</secDNS:protocol>
<secDNS:alg>8</secDNS:alg>
<secDNS:pubKey>cmlraXN0aGViZXN0</secDNS:pubKey>
</ext:keyData>
<ext:authInfo>
<domain:pw>7521f360ae480e67c3096e4c046beb84</domain:pw>
</ext:authInfo>
<ext:expiry>
<ext:relative>P1D</ext:relative>
</ext:expiry>
</ext:keyrelay>
<eis:extdata xmlns:eis="https://epp.tld.ee/schema/eis-1.0.xsd">
<eis:legalDocument type="pdf">dGVzdCBmYWlsCg==</eis:legalDocument>
</eis:extdata>
<ext:clTRID>1422542244</ext:clTRID>
</command>
</epp>