Şu Anda Uymadığı Bir Standardı Adıyla Anan Bir Belge Yayımlıyoruz

Aşağıda anlatılan kusur bizimdir, canlıdır ve bu sayfayı yazarken bulduk.

Belge ne işe yarar

Bir tanımlayıcıyı çözümlemek bir belge döndürür. O belge, bir doğrulayıcının gerçekten ihtiyaç duyduğu tek soruyu cevaplar: bu tanımlayıcı adına hangi açık anahtarlar, ne için hareket edebilir.

İmza anahtarları, şifreleme anahtarları, tanımlayıcının kendisini güncellemeye izinli anahtarlar. Bir doğrulayıcı onu okur, bir kimlik bilgisini imzalayan anahtarı bulur ve imzayı kontrol eder.

Taşınabilir kimliğe dair her şey, o aramanın bir yabancının yazılımının sizi özel bir duruma almadan ayrıştırabileceği bir şey döndürmesine dayanır.

Biçim neden bütün mesele

Belge, birlikte çalışabilirlik yüzeyidir. Bir kimlik bilgisi kusursuz ve işe yaramaz olabilir, eğer ihraççısının anahtarını adlandıran belge standart araçlarca okunamıyorsa.

Bu yüzden şartname küçük şeyler konusunda katıdır: bir anahtar özelliğinin adı ve anahtar malzemesinin nasıl kodlandığı. Bunlar, başkasının çözümleyicisi çıktınızı özel bir adaptör olmadan okumak zorunda kalana dek kılı kırk yarmak gibi görünür.

Bizimki şu anda ne yayıyor, anlatıldığı gibi değil kontrol edildiği gibi

İki şey uymuyor ve bunu yazarken ikisini de canlı ağa karşı doğruladık.

Çözümleyici, şartnamede olmayan bir anahtar özelliği döndürüyor. Belgemiz adlandırılmış bir W3C paketinden bir anahtar tipi bildiriyor, sonra anahtar malzemesini o paketin tanımlamadığı bir özellikte taşıyor. Paket belirli bir çok tabanlı özellik gerektiriyor; biz onaltılık bir özellik yayıyoruz.

Ve standart biçime dönüştürme, katı bir çözümleyicinin çözemeyeceği bir değer üretiyor. Paket, anahtarın algoritmayı belirten iki baytlık bir önekle kodlanmasını gerektiriyor, dolayısıyla doğru bir değer otuz dört bayta çözülür. Bizimki ham otuz iki baytlık anahtarı öneksiz base58 kodluyor.

Bunlar farklı dizeler üretir. Şartnameyi izleyen yazılım bizimkini çözer, algoritma başlığıyla otuz dört beklediği yerde otuz iki bayt bulur ve anahtarı yükleyemez.

Bunu sessizce düzeltmek yerine neden yayımlıyoruz

Çünkü açık gerçekte kodlamayla ilgili değil. Kimlik yöntemimizin W3C DID Method Registry içinde kayıtlı olması ve bunu birkaç yüzeyde söylememizle ilgili.

Bir kayıt girdisi bir adı ayırır ve yayımlanmış bir şartnameye işaret eder. Onay değildir, tasdik değildir ve uygunluk testi değildir, ve bunu göründüğü her yerde özenle yazdık. Ama sunduğumuz belgelerin adını andıkları şartnamelere uyduğu imasını taşır ve şu anda uymuyorlar.

Bu, tüm bu sitenin başkalarının materyalinde sürekli belgelediği aynı kusurdur: bir şeye, şu anda hak etmediği bir ad verilmiş. Bunu tek kayıtlı ürünümüzde bulmak rahatsız edicidir, ki tam olarak bu yüzden bir bekleme listesine değil sayfaya giriyor.

Neyi bozup neyi bozmuyor

Kendi ürünlerimizi bozmuyor. Yazılımımız kendi belgelerini okuyor ve imza kontrolü çalışıyor, ki bu yüzden hayatta kaldı.

Yöntemin var olma sebebi olan durumu bozuyor: bir yabancının standarda uygun çözümleyicisinin belgemizi bizi özel duruma almadan okuması. Bu, iç bir anahtar kaydı yerine açık bir kimlik standardı kullanmanın argümanının tamamıdır, dolayısıyla kusur tam olarak değer önerisinin üzerine düşüyor.

Ve düzeltme küçük. İki yer, iki baytlık bir önek ve bir özellik adı. Bir tasarım sorunu değil, bir yayımlama işidir, ki bunun dürüst ölçeği budur.

Onu yakalayacak olan ve yine yakalayacak olan test

Anahtardan türetilmiş bir tanımlayıcıyı gidiş dönüş çevirin. O tanımlayıcılar yapıları gereği zaten doğru önekli biçimdedir, dolayısıyla birini doğru işleyen bir uygulama bu hatayı yapamaz ve yapmayan bir uygulama hemen başarısız olur.

O testimiz yoktu. Uygunluk testi olmayan bir uygunluk iddiası, niyetler hakkında bir iddiadır ve pratikte görüntüsü budur.

Kendi kimlik yöntemi olan herhangi bir projeye sorulacaklar

"Bana çözümlenmiş bir belge gösterin ve anahtarı kendim çözeyim." Bir dakika sürer ve bunu çözen tek kontrol budur.

"Sizinkinden başka bir çözümleyici onu başarıyla okudu mu?" Kendi çıktınızı okumak döngüyü kanıtlar, standardı değil.

"Hangi uygunluk testlerini çalıştırıyorsunuz ve sonuçlar nerede?" Bizde bugün: hiçbiri, ve bunun olma biçimi budur.

"Kayıtlı mı, uygun mu?" Birbirinin yerine kullanılıyorlar. Bizimki kayıtlıdır ve bu sayfa itibarıyla yukarıda anlatılan biçimde uygun değildir.

Bu karar için ne anlama geliyor

Üçüncü taraf araçların bugün uyarlama olmadan okuduğu belgelere ihtiyacınız varsa, bunu şu anda karşılamıyoruz ve belirli sebep, mühendisinizin keşfetmesine bırakılmak yerine yukarıda yazılı.

Yine de değerlendiriyorsanız, işe yarayan sinyal kusurun var olması değildir, çünkü çoğu uygulamanın bir tane olmuştur. Onu bulmamız, tam değerleriyle yayımlamamız ve sessiz kalınacak bir şey değil, adı konmuş bir testi olan bir yayımlama işi olarak ele almamızdır.

Okumaya devam edin

Şu Anda Uymadığı Bir Standardı Adıyla Anan Bir Belge Yayımlıyoruz · Solidus