module OStatus2::MagicKey
Public Instance Methods
decode_base64(string)
click to toggle source
# File lib/ostatus2/magic_key.rb, line 23 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)
click to toggle source
# File lib/ostatus2/magic_key.rb, line 14 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 set_key(key, modulus, exponent) key.to_pem end
set_key(key, modulus, exponent)
click to toggle source
# File lib/ostatus2/magic_key.rb, line 4 def set_key(key, modulus, exponent) key.n = modulus key.e = exponent end