Comments (2)
Without the -traditional
parameter, openssl
generates a private key in PKCS#8 format. The PEM file does not contain a public key. Generating a matching public key from that private key is out of scope for KeyPairUtils
as a simple utility class. The main purpose of readKeyPair()
is to read a PEM file that was written by writeKeyPair()
.
acme4j client itself only requires a standard java.security.KeyPair
object. If you find a way to read a key pair from the PKCS#8 file, you can just use that KeyPair
object.
from acme4j.
Ok thank you.
If anyone reads this and wants to know what I did (only works for RSA keys):
fun readKeyPair(r: Reader): KeyPair {
PEMParser(r).use { parser ->
return when(val o = parser.readObject()) {
is PEMKeyPair -> {
println("Read old style RSA PRIVATE KEY")
JcaPEMKeyConverter().getKeyPair(o)
}
is PrivateKeyInfo -> {
println("Read PRIVATE KEY. Assume it is RSA.")
val privateKey = JcaPEMKeyConverter().getPrivateKey(o) as RSAPrivateCrtKey
val spec = RSAPublicKeySpec(privateKey.modulus, privateKey.publicExponent)
val publicKey = KeyFactory.getInstance("RSA").generatePublic(spec)
return KeyPair(publicKey, privateKey)
}
else -> {
throw IOException("Invalid PEM file")
}
}
}
}
from acme4j.
Related Issues (20)
- The challenge status was always "INVALID" HOT 13
- http://${domain}/.well-known/acme-challenge/${token}
- acme4j example is creating zero- length crt files HOT 10
- preferred-chain attribute, for alternate chains HOT 2
- EAB HMAC keys with arbitrary lengths HOT 5
- CVE-2023-33201 from Bouncy Castle HOT 8
- add utils to do pre validation or help HOT 1
- How to check if certificate needs renewal without ordering a new one? HOT 8
- Is there a way to keep txt unchanged and verify twice? HOT 2
- New account registration HOT 2
- Bouncy Castel dependency? HOT 9
- Allow to pass query parameters in directory URL HOT 2
- Provide example showing how to save and load existing certificates HOT 2
- AcmeJsonResource#update throws AcmeRetryAfterException even if resource is ready HOT 4
- Abstract away certificate renewal HOT 6
- response is not reading correctly HOT 3
- Java 22 Support HOT 1
- OrderBuilder.replaces() functions assume auto-renewal support by the server HOT 3
- The request attempted to finalize an order that is not ready to be finalized HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from acme4j.