code: func (sp *ServiceProvider) Metadata() *Metadata {
  	if cert, _ := pem.Decode([]byte(sp.Certificate)); cert != nil {
  		sp.Certificate = base64.StdEncoding.EncodeToString(cert.Bytes)
  	}
  
  	return &Metadata{
  		EntityID:   sp.MetadataURL,
  		ValidUntil: TimeNow().Add(DefaultValidDuration),
  		SPSSODescriptor: &SPSSODescriptor{
  			AuthnRequestsSigned:        false,
  			WantAssertionsSigned:       true,
  			ProtocolSupportEnumeration: "urn:oasis:names:tc:SAML:2.0:protocol",
  			KeyDescriptor: []KeyDescriptor{
  				{
  					Use: "signing",
  					KeyInfo: KeyInfo{
  						Certificate: sp.Certificate,
  					},
  				},
  				{
  					Use: "encryption",
  					KeyInfo: KeyInfo{
  						Certificate: sp.Certificate,
  					},
  					EncryptionMethods: []EncryptionMethod{
  						{Algorithm: "http://www.w3.org/2001/04/xmlenc#aes128-cbc"},
  						{Algorithm: "http://www.w3.org/2001/04/xmlenc#aes192-cbc"},
  						{Algorithm: "http://www.w3.org/2001/04/xmlenc#aes256-cbc"},
  						{Algorithm: "http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p"},
  					},
  				},
  			},
  			AssertionConsumerService: []IndexedEndpoint{{
  				Binding:  HTTPPostBinding,
  				Location: sp.AcsURL,
  				Index:    1,
  			}},
  		},
  	}
  }
docs: // Metadata returns the service provider metadata