Module: OStatus2::MagicKey
- Included in:
- Salmon
- Defined in:
- lib/ostatus2/magic_key.rb
Instance Method Summary collapse
Instance Method Details
#decode_base64(string) ⇒ Object
14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/ostatus2/magic_key.rb', line 14 def decode_base64(string) retries = 0 begin return Base64::urlsafe_decode64(string) rescue ArgumentError retries += 1 string = "#{string}=" retry unless retries > 2 end end |
#magic_key_to_pem(magic_key) ⇒ Object
3 4 5 6 7 8 9 10 11 12 |
# File 'lib/ostatus2/magic_key.rb', line 3 def magic_key_to_pem(magic_key) _, modulus, exponent = magic_key.split('.') modulus, exponent = [modulus, exponent].map { |n| decode_base64(n).bytes.inject(0) { |a, e| (a << 8) | e } } key = OpenSSL::PKey::RSA.new key.n = modulus key.e = exponent key.to_pem end |