@@ -15,30 +15,33 @@ func BytesToRSAKey(keyBytes []byte) (any, error) {
1515 // The key may be in OpenSSH format
1616 key , err := ssh .ParseRawPrivateKey (keyBytes )
1717 if err == nil {
18- // No error, so we can parse into a key object
18+ // This is an OpenSSH key, now check to see if it is a private key
1919 switch k := key .(type ) {
2020 case * rsa.PrivateKey , * ed25519.PrivateKey :
2121 return k , nil
2222 default :
23+ // This is an OpenSSH key, but it is not a private key
2324 return nil , fmt .Errorf ("key is not an RSA private key" )
2425 }
2526 }
2627
2728 // The key may be in PKCS8 format
2829 key , err = x509 .ParsePKCS8PrivateKey (keyBytes )
2930 if err == nil {
30- // No error, so we can parse into a key object
31+ // This is a PKCS8 key, now check to see if it is a private key
3132 switch k := key .(type ) {
3233 case * rsa.PrivateKey , * ed25519.PrivateKey :
3334 return k , nil
3435 default :
36+ // This is a PKCS8 key, but it is not a private key
3537 return nil , fmt .Errorf ("key is not an RSA private key" )
3638 }
3739 }
3840
3941 // The key may be in PKCS1 format
4042 key , err = x509 .ParsePKCS1PrivateKey (keyBytes )
4143 if err == nil {
44+ // This is a PKCS1 private key, return it
4245 return key , nil
4346 }
4447
0 commit comments