|
|
|
@ -489,7 +489,6 @@ func oxGetPublicKeyRing(client *xmpp.Client, recipient string) (*crypto.KeyRing,
|
|
|
|
|
|
|
|
|
|
func oxEncrypt(client *xmpp.Client, oxPrivKey *crypto.Key, recipient string,
|
|
|
|
|
keyRing *crypto.KeyRing, message string) (string, error) {
|
|
|
|
|
var oxMessage OxMessageElement
|
|
|
|
|
privKeyRing, err := crypto.NewKeyRing(oxPrivKey)
|
|
|
|
|
if err != nil {
|
|
|
|
|
return "error", err
|
|
|
|
@ -524,18 +523,24 @@ func oxEncrypt(client *xmpp.Client, oxPrivKey *crypto.Key, recipient string,
|
|
|
|
|
if err != nil {
|
|
|
|
|
return "error", err
|
|
|
|
|
}
|
|
|
|
|
oxMessage.To = recipient
|
|
|
|
|
oxMessage.Id = getID()
|
|
|
|
|
oxMessage.Store.Xmlns = nsHints
|
|
|
|
|
oxMessage.Openpgp.Text = base64.StdEncoding.EncodeToString(pgpMessage.Data)
|
|
|
|
|
oxMessage.Openpgp.Xmlns = nsOx
|
|
|
|
|
oxMessage.Encryption.Xmlns = nsEme
|
|
|
|
|
oxMessage.Encryption.Namespace = nsOx
|
|
|
|
|
oxMessage.Body = oxAltBody
|
|
|
|
|
om, err := xml.Marshal(oxMessage)
|
|
|
|
|
om := etree.NewDocument()
|
|
|
|
|
omMessage := om.CreateElement("message")
|
|
|
|
|
omMessage.CreateAttr("to", recipient)
|
|
|
|
|
omMessage.CreateAttr("id", getID())
|
|
|
|
|
omMessageStore := omMessage.CreateElement("store")
|
|
|
|
|
omMessageStore.CreateAttr("xmlns", nsHints)
|
|
|
|
|
omMessageEme := omMessage.CreateElement("encryption")
|
|
|
|
|
omMessageEme.CreateAttr("xmlns", nsEme)
|
|
|
|
|
omMessageEme.CreateAttr("namespace", nsOx)
|
|
|
|
|
omMessageOpgp := omMessage.CreateElement("openpgp")
|
|
|
|
|
omMessageOpgp.CreateAttr("xmlns", nsOx)
|
|
|
|
|
omMessageOpgp.CreateText(base64.StdEncoding.EncodeToString(pgpMessage.Data))
|
|
|
|
|
omMessageBody := omMessage.CreateElement("body")
|
|
|
|
|
omMessageBody.CreateText(oxAltBody)
|
|
|
|
|
oms, err := om.WriteToString()
|
|
|
|
|
if err != nil {
|
|
|
|
|
return "error", err
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return string(om), nil
|
|
|
|
|
return oms, nil
|
|
|
|
|
}
|
|
|
|
|