|
|
|
@ -446,16 +446,9 @@ func oxGetPublicKeyRing(client *xmpp.Client, iqc chan xmpp.IQ,
|
|
|
|
|
if err != nil {
|
|
|
|
|
return nil, err
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
oxPubKeyListReq := etree.NewDocument()
|
|
|
|
|
oxPubKeyListReqPs := oxPubKeyListReq.CreateElement("pubsub")
|
|
|
|
|
oxPubKeyListReqPs.CreateAttr("xmlns", nsPubsub)
|
|
|
|
|
oxPubKeyListReqPsItems := oxPubKeyListReqPs.CreateElement("items")
|
|
|
|
|
oxPubKeyListReqPsItems.CreateAttr("node", nsOxPubKeys)
|
|
|
|
|
oxPubKeyListReqPsItems.CreateAttr("max_items", "1")
|
|
|
|
|
opkl, err := oxPubKeyListReq.WriteToString()
|
|
|
|
|
opkl, err := oxGetPubKeyRingRequest()
|
|
|
|
|
if err != nil {
|
|
|
|
|
log.Fatal(err)
|
|
|
|
|
return nil, err
|
|
|
|
|
}
|
|
|
|
|
oxPublicKeyList, err := sendIQ(client, iqc, recipient, "get", opkl)
|
|
|
|
|
if err != nil {
|
|
|
|
@ -600,20 +593,7 @@ func oxEncrypt(client *xmpp.Client, iqc chan xmpp.IQ, oxPrivKey *crypto.Key,
|
|
|
|
|
_ = keyRing.AddKey(ownKey)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
oxCryptMessage := etree.NewDocument()
|
|
|
|
|
oxCryptMessageSc := oxCryptMessage.CreateElement("signcrypt")
|
|
|
|
|
oxCryptMessageSc.CreateAttr("xmlns", nsOx)
|
|
|
|
|
oxCryptMessageScTo := oxCryptMessageSc.CreateElement("to")
|
|
|
|
|
oxCryptMessageScTo.CreateAttr("jid", recipient)
|
|
|
|
|
oxCryptMessageScTime := oxCryptMessageSc.CreateElement("time")
|
|
|
|
|
oxCryptMessageScTime.CreateAttr("stamp", time.Now().UTC().Format("2006-01-02T15:04:05Z"))
|
|
|
|
|
oxCryptMessageScRpad := oxCryptMessageSc.CreateElement("rpad")
|
|
|
|
|
oxCryptMessageScRpad.CreateText(getRpad(len(message)))
|
|
|
|
|
oxCryptMessageScPayload := oxCryptMessageSc.CreateElement("payload")
|
|
|
|
|
oxCryptMessageScPayloadBody := oxCryptMessageScPayload.CreateElement("body")
|
|
|
|
|
oxCryptMessageScPayloadBody.CreateAttr("xmlns", nsJabberClient)
|
|
|
|
|
oxCryptMessageScPayloadBody.CreateText(message)
|
|
|
|
|
ocm, err := oxCryptMessage.WriteToString()
|
|
|
|
|
ocm, err := oxCryptMessage(recipient, message)
|
|
|
|
|
if err != nil {
|
|
|
|
|
return "error", err
|
|
|
|
|
}
|
|
|
|
@ -622,24 +602,9 @@ func oxEncrypt(client *xmpp.Client, iqc chan xmpp.IQ, oxPrivKey *crypto.Key,
|
|
|
|
|
if err != nil {
|
|
|
|
|
return "error", err
|
|
|
|
|
}
|
|
|
|
|
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()
|
|
|
|
|
oms, err := oxMessage(recipient, pgpMessage)
|
|
|
|
|
if err != nil {
|
|
|
|
|
return "error", err
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return oms, nil
|
|
|
|
|
}
|
|
|
|
|