code: def encryption_key(self, alg, **kwargs):
          
          if not self.key:
              self.deserialize()
  
          try:
              tsize = ALG2KEYLEN[alg]
          except KeyError:
              raise UnsupportedAlgorithm(alg)
  
          if tsize <= 32:
              # SHA256
              _enc_key = sha256_digest(self.key)[:tsize]
          elif tsize <= 48:
              # SHA384
              _enc_key = sha384_digest(self.key)[:tsize]
          elif tsize <= 64:
              # SHA512
              _enc_key = sha512_digest(self.key)[:tsize]
          else:
              raise JWKException("No support for symmetric keys > 512 bits")
  
          logger.debug('Symmetric encryption key: {}'.format(
              as_unicode(b64e(_enc_key))))
  
          return _enc_key
docs: Return an encryption key as per
          http://openid.net/specs/openid-connect-core-1_0.html#Encryption
  
          :param alg: encryption algorithm
          :param kwargs:
          :return: encryption key as byte string