Per rispondere alla tua prima domanda, questa è basata sul link (sezione 4)
della RFC
Il nome dell'algoritmo mancante ha a che fare con il formato di codifica usato durante la codifica, ad esempio pkcs # 1 vs pkcs # 8. Il primo non contiene l'algoritmoIdentificatore e quindi il nome algo (EC, RSA ecc.) È incluso nell'etichetta. Tuttavia, pkcs # 8 incapsula l'identificatore dell'algoritmo e quindi viene omesso dall'etichetta.
ad esempio, il formato pkcs # 8 per la chiave privata è questo:
PrivateKeyInfo ::= SEQUENCE {
version Version,
privateKeyAlgorithm PrivateKeyAlgorithmIdentifier,
privateKey PrivateKey,
attributes [0] IMPLICIT Attributes OPTIONAL }
Version ::= INTEGER
PrivateKeyAlgorithmIdentifier ::= AlgorithmIdentifier
PrivateKey ::= OCTET STRING
Attributes ::= SET OF Attribute
Per chiarire, non c'è nulla che impedisca di rappresentare la chiave pubblica nel formato pkcs # 1 e quindi di creare un'intestazione del tipo: ----- BEGIN EC PUBLIC KEY -----. Quindi sembra che la particolare codifica prodotta sia secondo il set di codifica predefinito per lo strumento (non sono sicuro di questo però). Ciononostante, qualsiasi strumento / libreria decente dovrebbe essere in grado di gestire con garbo qualsiasi formato, anche quando vengono utilizzati diversi formati per le chiavi pubbliche e private della stessa coppia di chiavi.