feat: rename all publicKey occurrences to certificate (#894)

* fix:The certs page is displayed incorrectly

* Translations for each language are added

* Replace the variables certificat with Certificat with certificate and Certificate

* Replace the variables certificat with Certificat with certificate and Certificate

* Variable names are more accurate

* Variable names are more accurate

* Modify the variable name
This commit is contained in:
SLingyu 2022-07-23 09:40:51 +08:00 committed by GitHub
parent 6f6159be07
commit 8e98fc5a9f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
26 changed files with 96 additions and 96 deletions

View File

@ -139,7 +139,7 @@
"cryptoAlgorithm": "RS256", "cryptoAlgorithm": "RS256",
"bitSize": 4096, "bitSize": 4096,
"expireInYears": 20, "expireInYears": 20,
"publicKey": "", "certificate": "",
"privateKey": "" "privateKey": ""
} }
], ],

View File

@ -33,7 +33,7 @@ type Cert struct {
BitSize int `json:"bitSize"` BitSize int `json:"bitSize"`
ExpireInYears int `json:"expireInYears"` ExpireInYears int `json:"expireInYears"`
PublicKey string `xorm:"mediumtext" json:"publicKey"` Certificate string `xorm:"mediumtext" json:"certificate"`
PrivateKey string `xorm:"mediumtext" json:"privateKey"` PrivateKey string `xorm:"mediumtext" json:"privateKey"`
AuthorityPublicKey string `xorm:"mediumtext" json:"authorityPublicKey"` AuthorityPublicKey string `xorm:"mediumtext" json:"authorityPublicKey"`
AuthorityRootPublicKey string `xorm:"mediumtext" json:"authorityRootPublicKey"` AuthorityRootPublicKey string `xorm:"mediumtext" json:"authorityRootPublicKey"`
@ -123,9 +123,9 @@ func UpdateCert(id string, cert *Cert) bool {
} }
func AddCert(cert *Cert) bool { func AddCert(cert *Cert) bool {
if cert.PublicKey == "" || cert.PrivateKey == "" { if cert.Certificate == "" || cert.PrivateKey == "" {
publicKey, privateKey := generateRsaKeys(cert.BitSize, cert.ExpireInYears, cert.Name, cert.Owner) certificate, privateKey := generateRsaKeys(cert.BitSize, cert.ExpireInYears, cert.Name, cert.Owner)
cert.PublicKey = publicKey cert.Certificate = certificate
cert.PrivateKey = privateKey cert.PrivateKey = privateKey
} }

View File

@ -167,7 +167,7 @@ func readTokenFromFile() (string, string) {
} }
func initBuiltInCert() { func initBuiltInCert() {
tokenJwtPublicKey, tokenJwtPrivateKey := readTokenFromFile() tokenJwtCertificate, tokenJwtPrivateKey := readTokenFromFile()
cert := getCert("admin", "cert-built-in") cert := getCert("admin", "cert-built-in")
if cert != nil { if cert != nil {
return return
@ -183,7 +183,7 @@ func initBuiltInCert() {
CryptoAlgorithm: "RS256", CryptoAlgorithm: "RS256",
BitSize: 4096, BitSize: 4096,
ExpireInYears: 20, ExpireInYears: 20,
PublicKey: tokenJwtPublicKey, Certificate: tokenJwtCertificate,
PrivateKey: tokenJwtPrivateKey, PrivateKey: tokenJwtPrivateKey,
} }
AddCert(cert) AddCert(cert)

View File

@ -97,7 +97,7 @@ func GetJsonWebKeySet() (jose.JSONWebKeySet, error) {
//link here: https://self-issued.info/docs/draft-ietf-jose-json-web-key.html //link here: https://self-issued.info/docs/draft-ietf-jose-json-web-key.html
//or https://datatracker.ietf.org/doc/html/draft-ietf-jose-json-web-key //or https://datatracker.ietf.org/doc/html/draft-ietf-jose-json-web-key
for _, cert := range certs { for _, cert := range certs {
certPemBlock := []byte(cert.PublicKey) certPemBlock := []byte(cert.Certificate)
certDerBlock, _ := pem.Decode(certPemBlock) certDerBlock, _ := pem.Decode(certPemBlock)
x509Cert, _ := x509.ParseCertificate(certDerBlock.Bytes) x509Cert, _ := x509.ParseCertificate(certDerBlock.Bytes)

View File

@ -30,7 +30,7 @@ func TestProduct(t *testing.T) {
product := GetProduct("admin/product_123") product := GetProduct("admin/product_123")
provider := getProvider(product.Owner, "provider_pay_alipay") provider := getProvider(product.Owner, "provider_pay_alipay")
cert := getCert(product.Owner, "cert-pay-alipay") cert := getCert(product.Owner, "cert-pay-alipay")
pProvider := pp.GetPaymentProvider(provider.Type, provider.ClientId, provider.ClientSecret, provider.Host, cert.PublicKey, cert.PrivateKey, cert.AuthorityPublicKey, cert.AuthorityRootPublicKey) pProvider := pp.GetPaymentProvider(provider.Type, provider.ClientId, provider.ClientSecret, provider.Host, cert.Certificate, cert.PrivateKey, cert.AuthorityPublicKey, cert.AuthorityRootPublicKey)
paymentName := util.GenerateTimeId() paymentName := util.GenerateTimeId()
returnUrl := "" returnUrl := ""

View File

@ -214,7 +214,7 @@ func (p *Provider) getPaymentProvider() (pp.PaymentProvider, *Cert, error) {
} }
} }
pProvider := pp.GetPaymentProvider(p.Type, p.ClientId, p.ClientSecret, p.Host, cert.PublicKey, cert.PrivateKey, cert.AuthorityPublicKey, cert.AuthorityRootPublicKey) pProvider := pp.GetPaymentProvider(p.Type, p.ClientId, p.ClientSecret, p.Host, cert.Certificate, cert.PrivateKey, cert.AuthorityPublicKey, cert.AuthorityRootPublicKey)
if pProvider == nil { if pProvider == nil {
return nil, cert, fmt.Errorf("the payment provider type: %s is not supported", p.Type) return nil, cert, fmt.Errorf("the payment provider type: %s is not supported", p.Type)
} }

View File

@ -36,7 +36,7 @@ import (
) )
//returns a saml2 response //returns a saml2 response
func NewSamlResponse(user *User, host string, publicKey string, destination string, iss string, requestId string, redirectUri []string) (*etree.Element, error) { func NewSamlResponse(user *User, host string, certificate string, destination string, iss string, requestId string, redirectUri []string) (*etree.Element, error) {
samlResponse := &etree.Element{ samlResponse := &etree.Element{
Space: "samlp", Space: "samlp",
Tag: "Response", Tag: "Response",
@ -177,8 +177,8 @@ type Attribute struct {
func GetSamlMeta(application *Application, host string) (*IdpEntityDescriptor, error) { func GetSamlMeta(application *Application, host string) (*IdpEntityDescriptor, error) {
//_, originBackend := getOriginFromHost(host) //_, originBackend := getOriginFromHost(host)
cert := getCertByApplication(application) cert := getCertByApplication(application)
block, _ := pem.Decode([]byte(cert.PublicKey)) block, _ := pem.Decode([]byte(cert.Certificate))
publicKey := base64.StdEncoding.EncodeToString(block.Bytes) certificate := base64.StdEncoding.EncodeToString(block.Bytes)
origin := beego.AppConfig.String("origin") origin := beego.AppConfig.String("origin")
originFrontend, originBackend := getOriginFromHost(host) originFrontend, originBackend := getOriginFromHost(host)
@ -199,7 +199,7 @@ func GetSamlMeta(application *Application, host string) (*IdpEntityDescriptor, e
KeyInfo: KeyInfo{ KeyInfo: KeyInfo{
X509Data: X509Data{ X509Data: X509Data{
X509Certificate: X509Certificate{ X509Certificate: X509Certificate{
Cert: publicKey, Cert: certificate,
}, },
}, },
}, },
@ -248,18 +248,18 @@ func GetSamlResponse(application *Application, user *User, samlRequest string, h
return "", "", fmt.Errorf("err: invalid issuer url") return "", "", fmt.Errorf("err: invalid issuer url")
} }
// get public key string // get certificate string
cert := getCertByApplication(application) cert := getCertByApplication(application)
block, _ := pem.Decode([]byte(cert.PublicKey)) block, _ := pem.Decode([]byte(cert.Certificate))
publicKey := base64.StdEncoding.EncodeToString(block.Bytes) certificate := base64.StdEncoding.EncodeToString(block.Bytes)
_, originBackend := getOriginFromHost(host) _, originBackend := getOriginFromHost(host)
// build signedResponse // build signedResponse
samlResponse, _ := NewSamlResponse(user, originBackend, publicKey, authnRequest.AssertionConsumerServiceURL, authnRequest.Issuer.Url, authnRequest.ID, application.RedirectUris) samlResponse, _ := NewSamlResponse(user, originBackend, certificate, authnRequest.AssertionConsumerServiceURL, authnRequest.Issuer.Url, authnRequest.ID, application.RedirectUris)
randomKeyStore := &X509Key{ randomKeyStore := &X509Key{
PrivateKey: cert.PrivateKey, PrivateKey: cert.PrivateKey,
X509Certificate: publicKey, X509Certificate: certificate,
} }
ctx := dsig.NewDefaultSigningContext(randomKeyStore) ctx := dsig.NewDefaultSigningContext(randomKeyStore)
ctx.Hash = crypto.SHA1 ctx.Hash = crypto.SHA1

View File

@ -241,11 +241,11 @@ func GetValidationBySaml(samlRequest string, host string) (string, string, error
samlResponse := NewSamlResponse11(user, request.RequestID, host) samlResponse := NewSamlResponse11(user, request.RequestID, host)
cert := getCertByApplication(application) cert := getCertByApplication(application)
block, _ := pem.Decode([]byte(cert.PublicKey)) block, _ := pem.Decode([]byte(cert.Certificate))
publicKey := base64.StdEncoding.EncodeToString(block.Bytes) certificate := base64.StdEncoding.EncodeToString(block.Bytes)
randomKeyStore := &X509Key{ randomKeyStore := &X509Key{
PrivateKey: cert.PrivateKey, PrivateKey: cert.PrivateKey,
X509Certificate: publicKey, X509Certificate: certificate,
} }
ctx := dsig.NewDefaultSigningContext(randomKeyStore) ctx := dsig.NewDefaultSigningContext(randomKeyStore)

View File

@ -129,13 +129,13 @@ func ParseJwtToken(token string, cert *Cert) (*Claims, error) {
return nil, fmt.Errorf("unexpected signing method: %v", token.Header["alg"]) return nil, fmt.Errorf("unexpected signing method: %v", token.Header["alg"])
} }
// RSA public key // RSA certificate
publicKey, err := jwt.ParseRSAPublicKeyFromPEM([]byte(cert.PublicKey)) certificate, err := jwt.ParseRSAPublicKeyFromPEM([]byte(cert.Certificate))
if err != nil { if err != nil {
return nil, err return nil, err
} }
return publicKey, nil return certificate, nil
}) })
if t != nil { if t != nil {

View File

@ -23,10 +23,10 @@ import (
func TestGenerateRsaKeys(t *testing.T) { func TestGenerateRsaKeys(t *testing.T) {
fileId := "token_jwt_key" fileId := "token_jwt_key"
publicKey, privateKey := generateRsaKeys(4096, 20, "Casdoor Cert", "Casdoor Organization") certificate, privateKey := generateRsaKeys(4096, 20, "Casdoor Cert", "Casdoor Organization")
// Write certificate (aka public key) to file. // Write certificate (aka certificate) to file.
util.WriteStringToPath(publicKey, fmt.Sprintf("%s.pem", fileId)) util.WriteStringToPath(certificate, fmt.Sprintf("%s.pem", fileId))
// Write private key to file. // Write private key to file.
util.WriteStringToPath(privateKey, fmt.Sprintf("%s.key", fileId)) util.WriteStringToPath(privateKey, fmt.Sprintf("%s.key", fileId))

View File

@ -28,7 +28,7 @@ type AlipayPaymentProvider struct {
Client *alipay.Client Client *alipay.Client
} }
func NewAlipayPaymentProvider(appId string, appPublicKey string, appPrivateKey string, authorityPublicKey string, authorityRootPublicKey string) *AlipayPaymentProvider { func NewAlipayPaymentProvider(appId string, appCertificate string, appPrivateKey string, authorityPublicKey string, authorityRootPublicKey string) *AlipayPaymentProvider {
pp := &AlipayPaymentProvider{} pp := &AlipayPaymentProvider{}
client, err := alipay.NewClient(appId, appPrivateKey, true) client, err := alipay.NewClient(appId, appPrivateKey, true)
@ -36,7 +36,7 @@ func NewAlipayPaymentProvider(appId string, appPublicKey string, appPrivateKey s
panic(err) panic(err)
} }
err = client.SetCertSnByContent([]byte(appPublicKey), []byte(authorityRootPublicKey), []byte(authorityPublicKey)) err = client.SetCertSnByContent([]byte(appCertificate), []byte(authorityRootPublicKey), []byte(authorityPublicKey))
if err != nil { if err != nil {
panic(err) panic(err)
} }

View File

@ -22,9 +22,9 @@ type PaymentProvider interface {
GetInvoice(paymentName string, personName string, personIdCard string, personEmail string, personPhone string, invoiceType string, invoiceTitle string, invoiceTaxId string) (string, error) GetInvoice(paymentName string, personName string, personIdCard string, personEmail string, personPhone string, invoiceType string, invoiceTitle string, invoiceTaxId string) (string, error)
} }
func GetPaymentProvider(typ string, appId string, clientSecret string, host string, appPublicKey string, appPrivateKey string, authorityPublicKey string, authorityRootPublicKey string) PaymentProvider { func GetPaymentProvider(typ string, appId string, clientSecret string, host string, appCertificate string, appPrivateKey string, authorityPublicKey string, authorityRootPublicKey string) PaymentProvider {
if typ == "Alipay" { if typ == "Alipay" {
return NewAlipayPaymentProvider(appId, appPublicKey, appPrivateKey, authorityPublicKey, authorityRootPublicKey) return NewAlipayPaymentProvider(appId, appCertificate, appPrivateKey, authorityPublicKey, authorityRootPublicKey)
} else if typ == "GC" { } else if typ == "GC" {
return NewGcPaymentProvider(appId, clientSecret, host) return NewGcPaymentProvider(appId, clientSecret, host)
} }

View File

@ -3571,7 +3571,7 @@
"privateKey": { "privateKey": {
"type": "string" "type": "string"
}, },
"publicKey": { "certificate": {
"type": "string" "type": "string"
}, },
"scope": { "scope": {

View File

@ -2346,7 +2346,7 @@ definitions:
type: string type: string
privateKey: privateKey:
type: string type: string
publicKey: certificate:
type: string type: string
scope: scope:
type: string type: string

View File

@ -164,25 +164,25 @@ class CertEditPage extends React.Component {
</Row> </Row>
<Row style={{marginTop: "20px"}} > <Row style={{marginTop: "20px"}} >
<Col style={{marginTop: "5px"}} span={(Setting.isMobile()) ? 22 : 2}> <Col style={{marginTop: "5px"}} span={(Setting.isMobile()) ? 22 : 2}>
{Setting.getLabel(i18next.t("cert:Public key"), i18next.t("cert:Public key - Tooltip"))} : {Setting.getLabel(i18next.t("cert:Certificate"), i18next.t("cert:Certificate - Tooltip"))} :
</Col> </Col>
<Col span={9} > <Col span={9} >
<Button style={{marginRight: "10px", marginBottom: "10px"}} onClick={() => { <Button style={{marginRight: "10px", marginBottom: "10px"}} onClick={() => {
copy(this.state.cert.publicKey); copy(this.state.cert.certificate);
Setting.showMessage("success", i18next.t("cert:Public key copied to clipboard successfully")); Setting.showMessage("success", i18next.t("cert:Certificate copied to clipboard successfully"));
}} }}
> >
{i18next.t("cert:Copy public key")} {i18next.t("cert:Copy certificate")}
</Button> </Button>
<Button type="primary" onClick={() => { <Button type="primary" onClick={() => {
const blob = new Blob([this.state.cert.publicKey], {type: "text/plain;charset=utf-8"}); const blob = new Blob([this.state.cert.certificate], {type: "text/plain;charset=utf-8"});
FileSaver.saveAs(blob, "token_jwt_key.pem"); FileSaver.saveAs(blob, "token_jwt_key.pem");
}} }}
> >
{i18next.t("cert:Download public key")} {i18next.t("cert:Download certificate")}
</Button> </Button>
<TextArea autoSize={{minRows: 30, maxRows: 30}} value={this.state.cert.publicKey} onChange={e => { <TextArea autoSize={{minRows: 30, maxRows: 30}} value={this.state.cert.certificate} onChange={e => {
this.updateCertField("publicKey", e.target.value); this.updateCertField("certificate", e.target.value);
}} /> }} />
</Col> </Col>
<Col span={1} /> <Col span={1} />

View File

@ -34,7 +34,7 @@ class CertListPage extends BaseListPage {
cryptoAlgorithm: "RS256", cryptoAlgorithm: "RS256",
bitSize: 4096, bitSize: 4096,
expireInYears: 20, expireInYears: 20,
publicKey: "", certificate: "",
privateKey: "", privateKey: "",
}; };
} }

View File

@ -622,7 +622,7 @@ class ProviderEditPage extends React.Component {
</Row> </Row>
<Row style={{marginTop: "20px"}} > <Row style={{marginTop: "20px"}} >
<Col style={{marginTop: "5px"}} span={(Setting.isMobile()) ? 22 : 2}> <Col style={{marginTop: "5px"}} span={(Setting.isMobile()) ? 22 : 2}>
{Setting.getLabel(i18next.t("provider:IdP"), i18next.t("provider:IdP public key"))} : {Setting.getLabel(i18next.t("provider:IdP"), i18next.t("provider:IdP certificate"))} :
</Col> </Col>
<Col span={22} > <Col span={22} >
<Input value={this.state.provider.idP} onChange={e => { <Input value={this.state.provider.idP} onChange={e => {

View File

@ -638,13 +638,13 @@ class LoginPage extends React.Component {
throw credentialRequestOptions.status.msg; throw credentialRequestOptions.status.msg;
} }
credentialRequestOptions.publicKey.challenge = UserWebauthnBackend.webAuthnBufferDecode(credentialRequestOptions.publicKey.challenge); credentialRequestOptions.certificate.challenge = UserWebauthnBackend.webAuthnBufferDecode(credentialRequestOptions.certificate.challenge);
credentialRequestOptions.publicKey.allowCredentials.forEach(function(listItem) { credentialRequestOptions.certificate.allowCredentials.forEach(function(listItem) {
listItem.id = UserWebauthnBackend.webAuthnBufferDecode(listItem.id); listItem.id = UserWebauthnBackend.webAuthnBufferDecode(listItem.id);
}); });
return navigator.credentials.get({ return navigator.credentials.get({
publicKey: credentialRequestOptions.publicKey certificate: credentialRequestOptions.certificate
}); });
}) })
.then((assertion) => { .then((assertion) => {

View File

@ -21,15 +21,15 @@ export function registerWebauthnCredential() {
}) })
.then(res => res.json()) .then(res => res.json())
.then((credentialCreationOptions) => { .then((credentialCreationOptions) => {
credentialCreationOptions.publicKey.challenge = webAuthnBufferDecode(credentialCreationOptions.publicKey.challenge); credentialCreationOptions.certificate.challenge = webAuthnBufferDecode(credentialCreationOptions.certificate.challenge);
credentialCreationOptions.publicKey.user.id = webAuthnBufferDecode(credentialCreationOptions.publicKey.user.id); credentialCreationOptions.certificate.user.id = webAuthnBufferDecode(credentialCreationOptions.certificate.user.id);
if (credentialCreationOptions.publicKey.excludeCredentials) { if (credentialCreationOptions.certificate.excludeCredentials) {
for (var i = 0; i < credentialCreationOptions.publicKey.excludeCredentials.length; i++) { for (var i = 0; i < credentialCreationOptions.certificate.excludeCredentials.length; i++) {
credentialCreationOptions.publicKey.excludeCredentials[i].id = webAuthnBufferDecode(credentialCreationOptions.publicKey.excludeCredentials[i].id); credentialCreationOptions.certificate.excludeCredentials[i].id = webAuthnBufferDecode(credentialCreationOptions.certificate.excludeCredentials[i].id);
} }
} }
return navigator.credentials.create({ return navigator.credentials.create({
publicKey: credentialCreationOptions.publicKey certificate: credentialCreationOptions.certificate
}); });
}) })
.then((credential) => { .then((credential) => {

View File

@ -51,11 +51,11 @@
"Bit size": "Bitgröße", "Bit size": "Bitgröße",
"Bit size - Tooltip": "Bit Größe - Tooltip", "Bit size - Tooltip": "Bit Größe - Tooltip",
"Copy private key": "Privaten Schlüssel kopieren", "Copy private key": "Privaten Schlüssel kopieren",
"Copy public key": "Öffentlichen Schlüssel kopieren", "Copy certificate": "Kopieren des Zertifikats",
"Crypto algorithm": "Crypto-Algorithmus", "Crypto algorithm": "Crypto-Algorithmus",
"Crypto algorithm - Tooltip": "Crypto algorithm - Tooltip", "Crypto algorithm - Tooltip": "Crypto algorithm - Tooltip",
"Download private key": "Privaten Schlüssel herunterladen", "Download private key": "Privaten Schlüssel herunterladen",
"Download public key": "Öffentlichen Schlüssel herunterladen", "Download certificate": "Zertifikat herunterladen",
"Edit Cert": "Zitat bearbeiten", "Edit Cert": "Zitat bearbeiten",
"Expire in years": "Gültig in Jahren", "Expire in years": "Gültig in Jahren",
"Expire in years - Tooltip": "Verfällt in Jahren - Tooltip", "Expire in years - Tooltip": "Verfällt in Jahren - Tooltip",
@ -63,9 +63,9 @@
"Private key": "Privater Schlüssel", "Private key": "Privater Schlüssel",
"Private key - Tooltip": "Privater Schlüssel - Tooltip", "Private key - Tooltip": "Privater Schlüssel - Tooltip",
"Private key copied to clipboard successfully": "Privater Schlüssel erfolgreich in die Zwischenablage kopiert", "Private key copied to clipboard successfully": "Privater Schlüssel erfolgreich in die Zwischenablage kopiert",
"Public key": "Öffentlicher Schlüssel", "Certificate": "Zertifikat",
"Public key - Tooltip": "Öffentlicher Schlüssel - Tooltip", "Certificate - Tooltip": "Zertifikat - Tooltip",
"Public key copied to clipboard successfully": "Öffentlicher Schlüssel erfolgreich in die Zwischenablage kopiert", "Certificate copied to clipboard successfully": "Das Zertifikat wurde erfolgreich in die Zwischenablage kopiert",
"Scope": "Bereich", "Scope": "Bereich",
"Scope - Tooltip": "Bereich - Tooltip", "Scope - Tooltip": "Bereich - Tooltip",
"Type": "Typ", "Type": "Typ",
@ -426,7 +426,7 @@
"Host": "Host", "Host": "Host",
"Host - Tooltip": "Unique string-style identifier", "Host - Tooltip": "Unique string-style identifier",
"IdP": "IdP", "IdP": "IdP",
"IdP public key": "IdP-öffentlicher Schlüssel", "IdP certificate": "IdP-öffentlicher Schlüssel",
"Issuer URL": "Ausgabe-URL", "Issuer URL": "Ausgabe-URL",
"Issuer URL - Tooltip": "Ausgabe-URL - Tooltip", "Issuer URL - Tooltip": "Ausgabe-URL - Tooltip",
"Link copied to clipboard successfully": "Link erfolgreich in die Zwischenablage kopiert", "Link copied to clipboard successfully": "Link erfolgreich in die Zwischenablage kopiert",

View File

@ -51,11 +51,11 @@
"Bit size": "Bit size", "Bit size": "Bit size",
"Bit size - Tooltip": "Bit size - Tooltip", "Bit size - Tooltip": "Bit size - Tooltip",
"Copy private key": "Copy private key", "Copy private key": "Copy private key",
"Copy public key": "Copy public key", "Copy certificate": "Copy certificate",
"Crypto algorithm": "Crypto algorithm", "Crypto algorithm": "Crypto algorithm",
"Crypto algorithm - Tooltip": "Crypto algorithm - Tooltip", "Crypto algorithm - Tooltip": "Crypto algorithm - Tooltip",
"Download private key": "Download private key", "Download private key": "Download private key",
"Download public key": "Download public key", "Download certificate": "Download certificate",
"Edit Cert": "Edit Cert", "Edit Cert": "Edit Cert",
"Expire in years": "Expire in years", "Expire in years": "Expire in years",
"Expire in years - Tooltip": "Expire in years - Tooltip", "Expire in years - Tooltip": "Expire in years - Tooltip",
@ -63,9 +63,9 @@
"Private key": "Private key", "Private key": "Private key",
"Private key - Tooltip": "Private key - Tooltip", "Private key - Tooltip": "Private key - Tooltip",
"Private key copied to clipboard successfully": "Private key copied to clipboard successfully", "Private key copied to clipboard successfully": "Private key copied to clipboard successfully",
"Public key": "Public key", "Certificate": "Certificate",
"Public key - Tooltip": "Public key - Tooltip", "Certificate - Tooltip": "Certificate - Tooltip",
"Public key copied to clipboard successfully": "Public key copied to clipboard successfully", "Certificate copied to clipboard successfully": "Certificate copied to clipboard successfully",
"Scope": "Scope", "Scope": "Scope",
"Scope - Tooltip": "Scope - Tooltip", "Scope - Tooltip": "Scope - Tooltip",
"Type": "Type", "Type": "Type",
@ -426,7 +426,7 @@
"Host": "Host", "Host": "Host",
"Host - Tooltip": "Host - Tooltip", "Host - Tooltip": "Host - Tooltip",
"IdP": "IdP", "IdP": "IdP",
"IdP public key": "IdP public key", "IdP certificate": "IdP certificate",
"Issuer URL": "Issuer URL", "Issuer URL": "Issuer URL",
"Issuer URL - Tooltip": "Issuer URL - Tooltip", "Issuer URL - Tooltip": "Issuer URL - Tooltip",
"Link copied to clipboard successfully": "Link copied to clipboard successfully", "Link copied to clipboard successfully": "Link copied to clipboard successfully",

View File

@ -51,21 +51,21 @@
"Bit size": "Taille du bit", "Bit size": "Taille du bit",
"Bit size - Tooltip": "Taille du bit - Infobulle", "Bit size - Tooltip": "Taille du bit - Infobulle",
"Copy private key": "Copier la clé privée", "Copy private key": "Copier la clé privée",
"Copy public key": "Copier la clé publique", "Copy certificate": "Copier le certificate",
"Crypto algorithm": "Algorithme de cryptomonnaie", "Crypto algorithm": "Algorithme de cryptomonnaie",
"Crypto algorithm - Tooltip": "Crypto algorithm - Tooltip", "Crypto algorithm - Tooltip": "Crypto algorithm - Tooltip",
"Download private key": "Télécharger la clé privée", "Download private key": "Télécharger la clé privée",
"Download public key": "Télécharger la clé publique", "Download certificate": "Télécharger le certificate",
"Edit Cert": "Modifier le certificat", "Edit Cert": "Modifier le certificate",
"Expire in years": "Expire dans les années", "Expire in years": "Expire dans les années",
"Expire in years - Tooltip": "Expire dans les années - infobulle", "Expire in years - Tooltip": "Expire dans les années - infobulle",
"New Cert": "New Cert", "New Cert": "New Cert",
"Private key": "Clé privée", "Private key": "Clé privée",
"Private key - Tooltip": "Clé privée - Infobulle", "Private key - Tooltip": "Clé privée - Infobulle",
"Private key copied to clipboard successfully": "Clé privée copiée dans le presse-papiers avec succès", "Private key copied to clipboard successfully": "Clé privée copiée dans le presse-papiers avec succès",
"Public key": "Clé publique", "Certificate": "certificate",
"Public key - Tooltip": "Clé publique - Infobulle", "Certificate - Tooltip": "certificate - Infobulle",
"Public key copied to clipboard successfully": "Clé publique copiée dans le presse-papiers avec succès", "Certificate copied to clipboard successfully": "Le certificate a été copié avec succès dans le presse-papiers",
"Scope": "Périmètre d'application", "Scope": "Périmètre d'application",
"Scope - Tooltip": "Scope - Infobulle", "Scope - Tooltip": "Scope - Infobulle",
"Type": "Type de texte", "Type": "Type de texte",
@ -426,7 +426,7 @@
"Host": "Hôte", "Host": "Hôte",
"Host - Tooltip": "Unique string-style identifier", "Host - Tooltip": "Unique string-style identifier",
"IdP": "IDP", "IdP": "IDP",
"IdP public key": "Clé publique IdP", "IdP certificate": "Clé publique IdP",
"Issuer URL": "URL de l'émetteur", "Issuer URL": "URL de l'émetteur",
"Issuer URL - Tooltip": "URL de l'émetteur - infobulle", "Issuer URL - Tooltip": "URL de l'émetteur - infobulle",
"Link copied to clipboard successfully": "Lien copié dans le presse-papiers avec succès", "Link copied to clipboard successfully": "Lien copié dans le presse-papiers avec succès",

View File

@ -51,11 +51,11 @@
"Bit size": "ビットサイズ", "Bit size": "ビットサイズ",
"Bit size - Tooltip": "ビットサイズ - ツールチップ", "Bit size - Tooltip": "ビットサイズ - ツールチップ",
"Copy private key": "秘密鍵をコピー", "Copy private key": "秘密鍵をコピー",
"Copy public key": "公開鍵をコピー", "Copy certificate": "証明書をコピーします",
"Crypto algorithm": "暗号化アルゴリズム", "Crypto algorithm": "暗号化アルゴリズム",
"Crypto algorithm - Tooltip": "Crypto algorithm - Tooltip", "Crypto algorithm - Tooltip": "Crypto algorithm - Tooltip",
"Download private key": "秘密鍵をダウンロード", "Download private key": "秘密鍵をダウンロード",
"Download public key": "公開鍵をダウンロード", "Download certificate": "証明書をダウンロードします",
"Edit Cert": "Certを編集", "Edit Cert": "Certを編集",
"Expire in years": "有効期限", "Expire in years": "有効期限",
"Expire in years - Tooltip": "年間有効期限 - ツールチップ", "Expire in years - Tooltip": "年間有効期限 - ツールチップ",
@ -63,9 +63,9 @@
"Private key": "Private key", "Private key": "Private key",
"Private key - Tooltip": "Private key - Tooltip", "Private key - Tooltip": "Private key - Tooltip",
"Private key copied to clipboard successfully": "秘密鍵を正常にクリップボードにコピーしました", "Private key copied to clipboard successfully": "秘密鍵を正常にクリップボードにコピーしました",
"Public key": "公開キー", "Certificate": "Certificate",
"Public key - Tooltip": "Public key - Tooltip", "Certificate - Tooltip": "Certificate - Tooltip",
"Public key copied to clipboard successfully": "公開鍵を正常にクリップボードにコピーしました", "Certificate copied to clipboard successfully": "証明書はクリップボードに正常にコピーされました",
"Scope": "スコープ", "Scope": "スコープ",
"Scope - Tooltip": "スコープ → ツールチップ", "Scope - Tooltip": "スコープ → ツールチップ",
"Type": "タイプ", "Type": "タイプ",
@ -426,7 +426,7 @@
"Host": "ホスト", "Host": "ホスト",
"Host - Tooltip": "Unique string-style identifier", "Host - Tooltip": "Unique string-style identifier",
"IdP": "IdP", "IdP": "IdP",
"IdP public key": "IdP public key", "IdP certificate": "IdP certificate",
"Issuer URL": "Issuer URL", "Issuer URL": "Issuer URL",
"Issuer URL - Tooltip": "Issuer URL - ツールチップ", "Issuer URL - Tooltip": "Issuer URL - ツールチップ",
"Link copied to clipboard successfully": "リンクをクリップボードにコピーしました", "Link copied to clipboard successfully": "リンクをクリップボードにコピーしました",

View File

@ -51,11 +51,11 @@
"Bit size": "Bit size", "Bit size": "Bit size",
"Bit size - Tooltip": "Bit size - Tooltip", "Bit size - Tooltip": "Bit size - Tooltip",
"Copy private key": "Copy private key", "Copy private key": "Copy private key",
"Copy public key": "Copy public key", "Copy certificate": "Copy certificate",
"Crypto algorithm": "Crypto algorithm", "Crypto algorithm": "Crypto algorithm",
"Crypto algorithm - Tooltip": "Crypto algorithm - Tooltip", "Crypto algorithm - Tooltip": "Crypto algorithm - Tooltip",
"Download private key": "Download private key", "Download private key": "Download private key",
"Download public key": "Download public key", "Download certificate": "Download certificate",
"Edit Cert": "Edit Cert", "Edit Cert": "Edit Cert",
"Expire in years": "Expire in years", "Expire in years": "Expire in years",
"Expire in years - Tooltip": "Expire in years - Tooltip", "Expire in years - Tooltip": "Expire in years - Tooltip",
@ -63,9 +63,9 @@
"Private key": "Private key", "Private key": "Private key",
"Private key - Tooltip": "Private key - Tooltip", "Private key - Tooltip": "Private key - Tooltip",
"Private key copied to clipboard successfully": "Private key copied to clipboard successfully", "Private key copied to clipboard successfully": "Private key copied to clipboard successfully",
"Public key": "Public key", "Certificate": "Certificate",
"Public key - Tooltip": "Public key - Tooltip", "Certificate - Tooltip": "Certificate - Tooltip",
"Public key copied to clipboard successfully": "Public key copied to clipboard successfully", "Certificate copied to clipboard successfully": "Certificate copied to clipboard successfully",
"Scope": "Scope", "Scope": "Scope",
"Scope - Tooltip": "Scope - Tooltip", "Scope - Tooltip": "Scope - Tooltip",
"Type": "Type", "Type": "Type",
@ -426,7 +426,7 @@
"Host": "Host", "Host": "Host",
"Host - Tooltip": "Unique string-style identifier", "Host - Tooltip": "Unique string-style identifier",
"IdP": "IdP", "IdP": "IdP",
"IdP public key": "IdP public key", "IdP certificate": "IdP certificate",
"Issuer URL": "Issuer URL", "Issuer URL": "Issuer URL",
"Issuer URL - Tooltip": "Issuer URL - Tooltip", "Issuer URL - Tooltip": "Issuer URL - Tooltip",
"Link copied to clipboard successfully": "Link copied to clipboard successfully", "Link copied to clipboard successfully": "Link copied to clipboard successfully",

View File

@ -51,11 +51,11 @@
"Bit size": "Размер бита", "Bit size": "Размер бита",
"Bit size - Tooltip": "Размер бита - Подсказка", "Bit size - Tooltip": "Размер бита - Подсказка",
"Copy private key": "Копировать закрытый ключ", "Copy private key": "Копировать закрытый ключ",
"Copy public key": "Копировать открытый ключ", "Copy certificate": "Копирование сертификата",
"Crypto algorithm": "Алгоритм крипто", "Crypto algorithm": "Алгоритм крипто",
"Crypto algorithm - Tooltip": "Crypto algorithm - Tooltip", "Crypto algorithm - Tooltip": "Crypto algorithm - Tooltip",
"Download private key": "Скачать закрытый ключ", "Download private key": "Скачать закрытый ключ",
"Download public key": "Скачать открытый ключ", "Download certificate": "Скачать сертификат",
"Edit Cert": "Изменить сертификат", "Edit Cert": "Изменить сертификат",
"Expire in years": "Истекает через годы", "Expire in years": "Истекает через годы",
"Expire in years - Tooltip": "Истекает через годы - Подсказка", "Expire in years - Tooltip": "Истекает через годы - Подсказка",
@ -63,9 +63,9 @@
"Private key": "Приватный ключ", "Private key": "Приватный ключ",
"Private key - Tooltip": "Приватный ключ - Подсказка", "Private key - Tooltip": "Приватный ключ - Подсказка",
"Private key copied to clipboard successfully": "Приватный ключ скопирован в буфер обмена", "Private key copied to clipboard successfully": "Приватный ключ скопирован в буфер обмена",
"Public key": "Публичный ключ", "Certificate": "сертификат",
"Public key - Tooltip": "Открытый ключ - Подсказка", "Certificate - Tooltip": "сертификат - Подсказка",
"Public key copied to clipboard successfully": "Открытый ключ успешно скопирован в буфер обмена", "Certificate copied to clipboard successfully": "Сертификат успешно скопирован в буфер обмена",
"Scope": "Сфера охвата", "Scope": "Сфера охвата",
"Scope - Tooltip": "Область применения - Подсказка", "Scope - Tooltip": "Область применения - Подсказка",
"Type": "Тип", "Type": "Тип",
@ -426,7 +426,7 @@
"Host": "Хост", "Host": "Хост",
"Host - Tooltip": "Unique string-style identifier", "Host - Tooltip": "Unique string-style identifier",
"IdP": "ИдП", "IdP": "ИдП",
"IdP public key": "Публичный ключ IdP", "IdP certificate": "Публичный ключ IdP",
"Issuer URL": "URL эмитента", "Issuer URL": "URL эмитента",
"Issuer URL - Tooltip": "URL эмитента - Tooltip", "Issuer URL - Tooltip": "URL эмитента - Tooltip",
"Link copied to clipboard successfully": "Ссылка скопирована в буфер обмена", "Link copied to clipboard successfully": "Ссылка скопирована в буфер обмена",

View File

@ -51,11 +51,11 @@
"Bit size": "位大小", "Bit size": "位大小",
"Bit size - Tooltip": "位大小 - 工具提示", "Bit size - Tooltip": "位大小 - 工具提示",
"Copy private key": "复制私钥", "Copy private key": "复制私钥",
"Copy public key": "复制公钥", "Copy certificate": "复制证书",
"Crypto algorithm": "加密算法", "Crypto algorithm": "加密算法",
"Crypto algorithm - Tooltip": "Crypto algorithm - Tooltip", "Crypto algorithm - Tooltip": "Crypto algorithm - Tooltip",
"Download private key": "下载私钥", "Download private key": "下载私钥",
"Download public key": "下载公钥", "Download certificate": "下载证书",
"Edit Cert": "编辑证书", "Edit Cert": "编辑证书",
"Expire in years": "有效期(年)", "Expire in years": "有效期(年)",
"Expire in years - Tooltip": "到期年份-工具提示", "Expire in years - Tooltip": "到期年份-工具提示",
@ -63,9 +63,9 @@
"Private key": "私钥", "Private key": "私钥",
"Private key - Tooltip": "私钥 - 工具提示", "Private key - Tooltip": "私钥 - 工具提示",
"Private key copied to clipboard successfully": "私钥已成功复制到剪贴板", "Private key copied to clipboard successfully": "私钥已成功复制到剪贴板",
"Public key": "公钥", "Certificate": "证书",
"Public key - Tooltip": "公钥 - 工具提示", "Certificate - Tooltip": "证书 - 工具提示",
"Public key copied to clipboard successfully": "公钥已成功复制到剪贴板", "Certificate copied to clipboard successfully": "证书已成功复制到剪贴板",
"Scope": "用途", "Scope": "用途",
"Scope - Tooltip": "范围 - 工具提示", "Scope - Tooltip": "范围 - 工具提示",
"Type": "类型", "Type": "类型",
@ -426,7 +426,7 @@
"Host": "主机", "Host": "主机",
"Host - Tooltip": "主机", "Host - Tooltip": "主机",
"IdP": "IdP", "IdP": "IdP",
"IdP public key": "IdP 公钥", "IdP certificate": "IdP 公钥",
"Issuer URL": "发行者网址", "Issuer URL": "发行者网址",
"Issuer URL - Tooltip": "发行者URL - 工具提示", "Issuer URL - Tooltip": "发行者URL - 工具提示",
"Link copied to clipboard successfully": "链接已成功复制到剪贴板", "Link copied to clipboard successfully": "链接已成功复制到剪贴板",