go.mod: update to images@v0.117.0
This commit updates to images v0.117.0 so that the cross-distro.sh test works again (images removed fedora-39.json in main but the uses the previous version of images that includes fedora-39 so there is a mismatch (we should look into if there is a way to get github.com/osbuild/images@latest instead of main in the cross-arch test). It also updates all the vendor stuff that got pulled via the new images release (which is giantonormous). This update requires updating the Go version to 1.22.8
This commit is contained in:
parent
886ddc0bcc
commit
409b4f6048
584 changed files with 60776 additions and 50181 deletions
2
vendor/github.com/proglottis/gpgme/.gitignore
generated
vendored
2
vendor/github.com/proglottis/gpgme/.gitignore
generated
vendored
|
|
@ -1 +1,3 @@
|
|||
testdata/gpghome/random_seed
|
||||
testdata/gpghome/.gpg-v21-migrated
|
||||
testdata/gpghome/private-keys-v1.d/
|
||||
|
|
|
|||
42
vendor/github.com/proglottis/gpgme/callbacks.go
generated
vendored
42
vendor/github.com/proglottis/gpgme/callbacks.go
generated
vendored
|
|
@ -1,42 +0,0 @@
|
|||
package gpgme
|
||||
|
||||
import (
|
||||
"sync"
|
||||
)
|
||||
|
||||
var callbacks struct {
|
||||
sync.Mutex
|
||||
m map[uintptr]interface{}
|
||||
c uintptr
|
||||
}
|
||||
|
||||
func callbackAdd(v interface{}) uintptr {
|
||||
callbacks.Lock()
|
||||
defer callbacks.Unlock()
|
||||
if callbacks.m == nil {
|
||||
callbacks.m = make(map[uintptr]interface{})
|
||||
}
|
||||
callbacks.c++
|
||||
ret := callbacks.c
|
||||
callbacks.m[ret] = v
|
||||
return ret
|
||||
}
|
||||
|
||||
func callbackLookup(c uintptr) interface{} {
|
||||
callbacks.Lock()
|
||||
defer callbacks.Unlock()
|
||||
ret := callbacks.m[c]
|
||||
if ret == nil {
|
||||
panic("callback pointer not found")
|
||||
}
|
||||
return ret
|
||||
}
|
||||
|
||||
func callbackDelete(c uintptr) {
|
||||
callbacks.Lock()
|
||||
defer callbacks.Unlock()
|
||||
if callbacks.m[c] == nil {
|
||||
panic("callback pointer not found")
|
||||
}
|
||||
delete(callbacks.m, c)
|
||||
}
|
||||
123
vendor/github.com/proglottis/gpgme/data.go
generated
vendored
123
vendor/github.com/proglottis/gpgme/data.go
generated
vendored
|
|
@ -10,6 +10,7 @@ import (
|
|||
"io"
|
||||
"os"
|
||||
"runtime"
|
||||
"runtime/cgo"
|
||||
"unsafe"
|
||||
)
|
||||
|
||||
|
|
@ -19,30 +20,32 @@ const (
|
|||
SeekEnd = C.SEEK_END
|
||||
)
|
||||
|
||||
var dataCallbacks = C.struct_gpgme_data_cbs{
|
||||
read: C.gpgme_data_read_cb_t(C.gogpgme_readfunc),
|
||||
write: C.gpgme_data_write_cb_t(C.gogpgme_writefunc),
|
||||
seek: C.gpgme_data_seek_cb_t(C.gogpgme_seekfunc),
|
||||
}
|
||||
|
||||
//export gogpgme_readfunc
|
||||
func gogpgme_readfunc(handle, buffer unsafe.Pointer, size C.size_t) C.ssize_t {
|
||||
d := callbackLookup(uintptr(handle)).(*Data)
|
||||
if len(d.buf) < int(size) {
|
||||
d.buf = make([]byte, size)
|
||||
}
|
||||
n, err := d.r.Read(d.buf[:size])
|
||||
h := *(*cgo.Handle)(handle)
|
||||
d := h.Value().(*Data)
|
||||
n, err := d.r.Read(unsafe.Slice((*byte)(buffer), size))
|
||||
if err != nil && err != io.EOF {
|
||||
d.err = err
|
||||
C.gpgme_err_set_errno(C.EIO)
|
||||
return -1
|
||||
}
|
||||
C.memcpy(buffer, unsafe.Pointer(&d.buf[0]), C.size_t(n))
|
||||
return C.ssize_t(n)
|
||||
}
|
||||
|
||||
//export gogpgme_writefunc
|
||||
func gogpgme_writefunc(handle, buffer unsafe.Pointer, size C.size_t) C.ssize_t {
|
||||
d := callbackLookup(uintptr(handle)).(*Data)
|
||||
if len(d.buf) < int(size) {
|
||||
d.buf = make([]byte, size)
|
||||
}
|
||||
C.memcpy(unsafe.Pointer(&d.buf[0]), buffer, C.size_t(size))
|
||||
n, err := d.w.Write(d.buf[:size])
|
||||
h := *(*cgo.Handle)(handle)
|
||||
d := h.Value().(*Data)
|
||||
n, err := d.w.Write(unsafe.Slice((*byte)(buffer), size))
|
||||
if err != nil && err != io.EOF {
|
||||
d.err = err
|
||||
C.gpgme_err_set_errno(C.EIO)
|
||||
return -1
|
||||
}
|
||||
|
|
@ -51,9 +54,11 @@ func gogpgme_writefunc(handle, buffer unsafe.Pointer, size C.size_t) C.ssize_t {
|
|||
|
||||
//export gogpgme_seekfunc
|
||||
func gogpgme_seekfunc(handle unsafe.Pointer, offset C.gpgme_off_t, whence C.int) C.gpgme_off_t {
|
||||
d := callbackLookup(uintptr(handle)).(*Data)
|
||||
h := *(*cgo.Handle)(handle)
|
||||
d := h.Value().(*Data)
|
||||
n, err := d.s.Seek(int64(offset), int(whence))
|
||||
if err != nil {
|
||||
d.err = err
|
||||
C.gpgme_err_set_errno(C.EIO)
|
||||
return -1
|
||||
}
|
||||
|
|
@ -63,12 +68,11 @@ func gogpgme_seekfunc(handle unsafe.Pointer, offset C.gpgme_off_t, whence C.int)
|
|||
// The Data buffer used to communicate with GPGME
|
||||
type Data struct {
|
||||
dh C.gpgme_data_t // WARNING: Call runtime.KeepAlive(d) after ANY passing of d.dh to C
|
||||
buf []byte
|
||||
cbs C.struct_gpgme_data_cbs
|
||||
r io.Reader
|
||||
w io.Writer
|
||||
s io.Seeker
|
||||
cbc uintptr // WARNING: Call runtime.KeepAlive(d) after ANY use of d.cbc in C (typically via d.dh)
|
||||
cbc cgo.Handle // WARNING: Call runtime.KeepAlive(d) after ANY use of d.cbc in C (typically via d.dh)
|
||||
err error
|
||||
}
|
||||
|
||||
func newData() *Data {
|
||||
|
|
@ -86,6 +90,7 @@ func NewData() (*Data, error) {
|
|||
// NewDataFile returns a new file based data buffer
|
||||
func NewDataFile(f *os.File) (*Data, error) {
|
||||
d := newData()
|
||||
d.r = f
|
||||
return d, handleError(C.gpgme_data_new_from_fd(&d.dh, C.int(f.Fd())))
|
||||
}
|
||||
|
||||
|
|
@ -103,20 +108,22 @@ func NewDataBytes(b []byte) (*Data, error) {
|
|||
func NewDataReader(r io.Reader) (*Data, error) {
|
||||
d := newData()
|
||||
d.r = r
|
||||
d.cbs.read = C.gpgme_data_read_cb_t(C.gogpgme_readfunc)
|
||||
cbc := callbackAdd(d)
|
||||
d.cbc = cbc
|
||||
return d, handleError(C.gogpgme_data_new_from_cbs(&d.dh, &d.cbs, C.uintptr_t(cbc)))
|
||||
if s, ok := r.(io.Seeker); ok {
|
||||
d.s = s
|
||||
}
|
||||
d.cbc = cgo.NewHandle(d)
|
||||
return d, handleError(C.gpgme_data_new_from_cbs(&d.dh, &dataCallbacks, unsafe.Pointer(&d.cbc)))
|
||||
}
|
||||
|
||||
// NewDataWriter returns a new callback based data buffer
|
||||
func NewDataWriter(w io.Writer) (*Data, error) {
|
||||
d := newData()
|
||||
d.w = w
|
||||
d.cbs.write = C.gpgme_data_write_cb_t(C.gogpgme_writefunc)
|
||||
cbc := callbackAdd(d)
|
||||
d.cbc = cbc
|
||||
return d, handleError(C.gogpgme_data_new_from_cbs(&d.dh, &d.cbs, C.uintptr_t(cbc)))
|
||||
if s, ok := w.(io.Seeker); ok {
|
||||
d.s = s
|
||||
}
|
||||
d.cbc = cgo.NewHandle(d)
|
||||
return d, handleError(C.gpgme_data_new_from_cbs(&d.dh, &dataCallbacks, unsafe.Pointer(&d.cbc)))
|
||||
}
|
||||
|
||||
// NewDataReadWriter returns a new callback based data buffer
|
||||
|
|
@ -124,11 +131,11 @@ func NewDataReadWriter(rw io.ReadWriter) (*Data, error) {
|
|||
d := newData()
|
||||
d.r = rw
|
||||
d.w = rw
|
||||
d.cbs.read = C.gpgme_data_read_cb_t(C.gogpgme_readfunc)
|
||||
d.cbs.write = C.gpgme_data_write_cb_t(C.gogpgme_writefunc)
|
||||
cbc := callbackAdd(d)
|
||||
d.cbc = cbc
|
||||
return d, handleError(C.gogpgme_data_new_from_cbs(&d.dh, &d.cbs, C.uintptr_t(cbc)))
|
||||
if s, ok := rw.(io.Seeker); ok {
|
||||
d.s = s
|
||||
}
|
||||
d.cbc = cgo.NewHandle(d)
|
||||
return d, handleError(C.gpgme_data_new_from_cbs(&d.dh, &dataCallbacks, unsafe.Pointer(&d.cbc)))
|
||||
}
|
||||
|
||||
// NewDataReadWriteSeeker returns a new callback based data buffer
|
||||
|
|
@ -137,12 +144,8 @@ func NewDataReadWriteSeeker(rw io.ReadWriteSeeker) (*Data, error) {
|
|||
d.r = rw
|
||||
d.w = rw
|
||||
d.s = rw
|
||||
d.cbs.read = C.gpgme_data_read_cb_t(C.gogpgme_readfunc)
|
||||
d.cbs.write = C.gpgme_data_write_cb_t(C.gogpgme_writefunc)
|
||||
d.cbs.seek = C.gpgme_data_seek_cb_t(C.gogpgme_seekfunc)
|
||||
cbc := callbackAdd(d)
|
||||
d.cbc = cbc
|
||||
return d, handleError(C.gogpgme_data_new_from_cbs(&d.dh, &d.cbs, C.uintptr_t(cbc)))
|
||||
d.cbc = cgo.NewHandle(d)
|
||||
return d, handleError(C.gpgme_data_new_from_cbs(&d.dh, &dataCallbacks, unsafe.Pointer(&d.cbc)))
|
||||
}
|
||||
|
||||
// Close releases any resources associated with the data buffer
|
||||
|
|
@ -151,7 +154,7 @@ func (d *Data) Close() error {
|
|||
return nil
|
||||
}
|
||||
if d.cbc > 0 {
|
||||
callbackDelete(d.cbc)
|
||||
d.cbc.Delete()
|
||||
}
|
||||
_, err := C.gpgme_data_release(d.dh)
|
||||
runtime.KeepAlive(d)
|
||||
|
|
@ -160,24 +163,42 @@ func (d *Data) Close() error {
|
|||
}
|
||||
|
||||
func (d *Data) Write(p []byte) (int, error) {
|
||||
n, err := C.gpgme_data_write(d.dh, unsafe.Pointer(&p[0]), C.size_t(len(p)))
|
||||
runtime.KeepAlive(d)
|
||||
if err != nil {
|
||||
return 0, err
|
||||
var buffer *byte
|
||||
if len(p) > 0 {
|
||||
buffer = &p[0]
|
||||
}
|
||||
if n == 0 {
|
||||
|
||||
n, err := C.gpgme_data_write(d.dh, unsafe.Pointer(buffer), C.size_t(len(p)))
|
||||
runtime.KeepAlive(d)
|
||||
switch {
|
||||
case d.err != nil:
|
||||
defer func() { d.err = nil }()
|
||||
|
||||
return 0, d.err
|
||||
case err != nil:
|
||||
return 0, err
|
||||
case len(p) > 0 && n == 0:
|
||||
return 0, io.EOF
|
||||
}
|
||||
return int(n), nil
|
||||
}
|
||||
|
||||
func (d *Data) Read(p []byte) (int, error) {
|
||||
n, err := C.gpgme_data_read(d.dh, unsafe.Pointer(&p[0]), C.size_t(len(p)))
|
||||
runtime.KeepAlive(d)
|
||||
if err != nil {
|
||||
return 0, err
|
||||
var buffer *byte
|
||||
if len(p) > 0 {
|
||||
buffer = &p[0]
|
||||
}
|
||||
if n == 0 {
|
||||
|
||||
n, err := C.gpgme_data_read(d.dh, unsafe.Pointer(buffer), C.size_t(len(p)))
|
||||
runtime.KeepAlive(d)
|
||||
switch {
|
||||
case d.err != nil:
|
||||
defer func() { d.err = nil }()
|
||||
|
||||
return 0, d.err
|
||||
case err != nil:
|
||||
return 0, err
|
||||
case len(p) > 0 && n == 0:
|
||||
return 0, io.EOF
|
||||
}
|
||||
return int(n), nil
|
||||
|
|
@ -186,7 +207,15 @@ func (d *Data) Read(p []byte) (int, error) {
|
|||
func (d *Data) Seek(offset int64, whence int) (int64, error) {
|
||||
n, err := C.gogpgme_data_seek(d.dh, C.gpgme_off_t(offset), C.int(whence))
|
||||
runtime.KeepAlive(d)
|
||||
return int64(n), err
|
||||
switch {
|
||||
case d.err != nil:
|
||||
defer func() { d.err = nil }()
|
||||
|
||||
return 0, d.err
|
||||
case err != nil:
|
||||
return 0, err
|
||||
}
|
||||
return int64(n), nil
|
||||
}
|
||||
|
||||
// Name returns the associated filename if any
|
||||
|
|
|
|||
20
vendor/github.com/proglottis/gpgme/go_gpgme.c
generated
vendored
20
vendor/github.com/proglottis/gpgme/go_gpgme.c
generated
vendored
|
|
@ -1,13 +1,5 @@
|
|||
#include "go_gpgme.h"
|
||||
|
||||
gpgme_error_t gogpgme_data_new_from_cbs(gpgme_data_t *dh, gpgme_data_cbs_t cbs, uintptr_t handle) {
|
||||
return gpgme_data_new_from_cbs(dh, cbs, (void *)handle);
|
||||
}
|
||||
|
||||
void gogpgme_set_passphrase_cb(gpgme_ctx_t ctx, gpgme_passphrase_cb_t cb, uintptr_t handle) {
|
||||
gpgme_set_passphrase_cb(ctx, cb, (void *)handle);
|
||||
}
|
||||
|
||||
gpgme_off_t gogpgme_data_seek(gpgme_data_t dh, gpgme_off_t offset, int whence) {
|
||||
return gpgme_data_seek(dh, offset, whence);
|
||||
}
|
||||
|
|
@ -15,17 +7,17 @@ gpgme_off_t gogpgme_data_seek(gpgme_data_t dh, gpgme_off_t offset, int whence) {
|
|||
gpgme_error_t gogpgme_op_assuan_transact_ext(
|
||||
gpgme_ctx_t ctx,
|
||||
char* cmd,
|
||||
uintptr_t data_h,
|
||||
uintptr_t inquiry_h,
|
||||
uintptr_t status_h,
|
||||
void* data_h,
|
||||
void* inquiry_h,
|
||||
void* status_h,
|
||||
gpgme_error_t *operr
|
||||
){
|
||||
return gpgme_op_assuan_transact_ext(
|
||||
ctx,
|
||||
cmd,
|
||||
(gpgme_assuan_data_cb_t) gogpgme_assuan_data_callback, (void *)data_h,
|
||||
(gpgme_assuan_inquire_cb_t) gogpgme_assuan_inquiry_callback, (void *)inquiry_h,
|
||||
(gpgme_assuan_status_cb_t) gogpgme_assuan_status_callback, (void *)status_h,
|
||||
(gpgme_assuan_data_cb_t) gogpgme_assuan_data_callback, data_h,
|
||||
(gpgme_assuan_inquire_cb_t) gogpgme_assuan_inquiry_callback, inquiry_h,
|
||||
(gpgme_assuan_status_cb_t) gogpgme_assuan_status_callback, status_h,
|
||||
operr
|
||||
);
|
||||
}
|
||||
|
|
|
|||
4
vendor/github.com/proglottis/gpgme/go_gpgme.h
generated
vendored
4
vendor/github.com/proglottis/gpgme/go_gpgme.h
generated
vendored
|
|
@ -10,11 +10,9 @@ extern ssize_t gogpgme_readfunc(void *handle, void *buffer, size_t size);
|
|||
extern ssize_t gogpgme_writefunc(void *handle, void *buffer, size_t size);
|
||||
extern off_t gogpgme_seekfunc(void *handle, off_t offset, int whence);
|
||||
extern gpgme_error_t gogpgme_passfunc(void *hook, char *uid_hint, char *passphrase_info, int prev_was_bad, int fd);
|
||||
extern gpgme_error_t gogpgme_data_new_from_cbs(gpgme_data_t *dh, gpgme_data_cbs_t cbs, uintptr_t handle);
|
||||
extern void gogpgme_set_passphrase_cb(gpgme_ctx_t ctx, gpgme_passphrase_cb_t cb, uintptr_t handle);
|
||||
extern gpgme_off_t gogpgme_data_seek(gpgme_data_t dh, gpgme_off_t offset, int whence);
|
||||
|
||||
extern gpgme_error_t gogpgme_op_assuan_transact_ext(gpgme_ctx_t ctx, char *cmd, uintptr_t data_h, uintptr_t inquiry_h , uintptr_t status_h, gpgme_error_t *operr);
|
||||
extern gpgme_error_t gogpgme_op_assuan_transact_ext(gpgme_ctx_t ctx, char *cmd, void *data_h, void *inquiry_h , void *status_h, gpgme_error_t *operr);
|
||||
|
||||
extern gpgme_error_t gogpgme_assuan_data_callback(void *opaque, void* data, size_t datalen );
|
||||
extern gpgme_error_t gogpgme_assuan_inquiry_callback(void *opaque, char* name, char* args);
|
||||
|
|
|
|||
78
vendor/github.com/proglottis/gpgme/gpgme.go
generated
vendored
78
vendor/github.com/proglottis/gpgme/gpgme.go
generated
vendored
|
|
@ -7,11 +7,13 @@ package gpgme
|
|||
// #include <gpgme.h>
|
||||
// #include "go_gpgme.h"
|
||||
import "C"
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"io"
|
||||
"os"
|
||||
"runtime"
|
||||
"runtime/cgo"
|
||||
"time"
|
||||
"unsafe"
|
||||
)
|
||||
|
|
@ -27,7 +29,8 @@ type Callback func(uidHint string, prevWasBad bool, f *os.File) error
|
|||
|
||||
//export gogpgme_passfunc
|
||||
func gogpgme_passfunc(hook unsafe.Pointer, uid_hint, passphrase_info *C.char, prev_was_bad, fd C.int) C.gpgme_error_t {
|
||||
c := callbackLookup(uintptr(hook)).(*Context)
|
||||
h := *(*cgo.Handle)(hook)
|
||||
c := h.Value().(*Context)
|
||||
go_uid_hint := C.GoString(uid_hint)
|
||||
f := os.NewFile(uintptr(fd), go_uid_hint)
|
||||
defer f.Close()
|
||||
|
|
@ -233,6 +236,17 @@ func SetEngineInfo(proto Protocol, fileName, homeDir string) error {
|
|||
return handleError(C.gpgme_set_engine_info(C.gpgme_protocol_t(proto), cfn, chome))
|
||||
}
|
||||
|
||||
func GetDirInfo(what string) string {
|
||||
cwhat := C.CString(what)
|
||||
defer C.free(unsafe.Pointer(cwhat))
|
||||
|
||||
cdir := C.gpgme_get_dirinfo(cwhat)
|
||||
if cdir == nil {
|
||||
return ""
|
||||
}
|
||||
return C.GoString(cdir)
|
||||
}
|
||||
|
||||
func FindKeys(pattern string, secretOnly bool) ([]*Key, error) {
|
||||
var keys []*Key
|
||||
ctx, err := New()
|
||||
|
|
@ -243,7 +257,7 @@ func FindKeys(pattern string, secretOnly bool) ([]*Key, error) {
|
|||
if err := ctx.KeyListStart(pattern, secretOnly); err != nil {
|
||||
return keys, err
|
||||
}
|
||||
defer ctx.KeyListEnd()
|
||||
defer func() { _ = ctx.KeyListEnd() }()
|
||||
for ctx.KeyListNext() {
|
||||
keys = append(keys, ctx.Key)
|
||||
}
|
||||
|
|
@ -268,8 +282,10 @@ func Decrypt(r io.Reader) (*Data, error) {
|
|||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
err = ctx.Decrypt(cipher, plain)
|
||||
plain.Seek(0, SeekSet)
|
||||
if err := ctx.Decrypt(cipher, plain); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
_, err = plain.Seek(0, SeekSet)
|
||||
return plain, err
|
||||
}
|
||||
|
||||
|
|
@ -278,7 +294,7 @@ type Context struct {
|
|||
KeyError error
|
||||
|
||||
callback Callback
|
||||
cbc uintptr // WARNING: Call runtime.KeepAlive(c) after ANY use of c.cbc in C (typically via c.ctx)
|
||||
cbc cgo.Handle // WARNING: Call runtime.KeepAlive(c) after ANY use of c.cbc in C (typically via c.ctx)
|
||||
|
||||
ctx C.gpgme_ctx_t // WARNING: Call runtime.KeepAlive(c) after ANY passing of c.ctx to C
|
||||
}
|
||||
|
|
@ -295,7 +311,7 @@ func (c *Context) Release() {
|
|||
return
|
||||
}
|
||||
if c.cbc > 0 {
|
||||
callbackDelete(c.cbc)
|
||||
c.cbc.Delete()
|
||||
}
|
||||
C.gpgme_release(c.ctx)
|
||||
runtime.KeepAlive(c)
|
||||
|
|
@ -364,15 +380,14 @@ func (c *Context) SetCallback(callback Callback) error {
|
|||
var err error
|
||||
c.callback = callback
|
||||
if c.cbc > 0 {
|
||||
callbackDelete(c.cbc)
|
||||
c.cbc.Delete()
|
||||
}
|
||||
if callback != nil {
|
||||
cbc := callbackAdd(c)
|
||||
c.cbc = cbc
|
||||
_, err = C.gogpgme_set_passphrase_cb(c.ctx, C.gpgme_passphrase_cb_t(C.gogpgme_passfunc), C.uintptr_t(cbc))
|
||||
c.cbc = cgo.NewHandle(c)
|
||||
_, err = C.gpgme_set_passphrase_cb(c.ctx, C.gpgme_passphrase_cb_t(C.gogpgme_passfunc), unsafe.Pointer(&c.cbc))
|
||||
} else {
|
||||
c.cbc = 0
|
||||
_, err = C.gogpgme_set_passphrase_cb(c.ctx, nil, 0)
|
||||
_, err = C.gpgme_set_passphrase_cb(c.ctx, nil, nil)
|
||||
}
|
||||
runtime.KeepAlive(c)
|
||||
return err
|
||||
|
|
@ -564,9 +579,11 @@ func (c *Context) Sign(signers []*Key, plain, sig *Data, mode SigMode) error {
|
|||
return err
|
||||
}
|
||||
|
||||
type AssuanDataCallback func(data []byte) error
|
||||
type AssuanInquireCallback func(name, args string) error
|
||||
type AssuanStatusCallback func(status, args string) error
|
||||
type (
|
||||
AssuanDataCallback func(data []byte) error
|
||||
AssuanInquireCallback func(name, args string) error
|
||||
AssuanStatusCallback func(status, args string) error
|
||||
)
|
||||
|
||||
// AssuanSend sends a raw Assuan command to gpg-agent
|
||||
func (c *Context) AssuanSend(
|
||||
|
|
@ -577,17 +594,17 @@ func (c *Context) AssuanSend(
|
|||
) error {
|
||||
var operr C.gpgme_error_t
|
||||
|
||||
dataPtr := callbackAdd(&data)
|
||||
inquiryPtr := callbackAdd(&inquiry)
|
||||
statusPtr := callbackAdd(&status)
|
||||
dataPtr := cgo.NewHandle(&data)
|
||||
inquiryPtr := cgo.NewHandle(&inquiry)
|
||||
statusPtr := cgo.NewHandle(&status)
|
||||
cmdCStr := C.CString(cmd)
|
||||
defer C.free(unsafe.Pointer(cmdCStr))
|
||||
err := C.gogpgme_op_assuan_transact_ext(
|
||||
c.ctx,
|
||||
cmdCStr,
|
||||
C.uintptr_t(dataPtr),
|
||||
C.uintptr_t(inquiryPtr),
|
||||
C.uintptr_t(statusPtr),
|
||||
unsafe.Pointer(&dataPtr),
|
||||
unsafe.Pointer(&inquiryPtr),
|
||||
unsafe.Pointer(&statusPtr),
|
||||
&operr,
|
||||
)
|
||||
runtime.KeepAlive(c)
|
||||
|
|
@ -600,11 +617,14 @@ func (c *Context) AssuanSend(
|
|||
|
||||
//export gogpgme_assuan_data_callback
|
||||
func gogpgme_assuan_data_callback(handle unsafe.Pointer, data unsafe.Pointer, datalen C.size_t) C.gpgme_error_t {
|
||||
c := callbackLookup(uintptr(handle)).(*AssuanDataCallback)
|
||||
h := *(*cgo.Handle)(handle)
|
||||
c := h.Value().(*AssuanDataCallback)
|
||||
if *c == nil {
|
||||
return 0
|
||||
}
|
||||
(*c)(C.GoBytes(data, C.int(datalen)))
|
||||
if err := (*c)(C.GoBytes(data, C.int(datalen))); err != nil {
|
||||
return C.gpgme_error(C.GPG_ERR_USER_1)
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
|
|
@ -612,11 +632,14 @@ func gogpgme_assuan_data_callback(handle unsafe.Pointer, data unsafe.Pointer, da
|
|||
func gogpgme_assuan_inquiry_callback(handle unsafe.Pointer, cName *C.char, cArgs *C.char) C.gpgme_error_t {
|
||||
name := C.GoString(cName)
|
||||
args := C.GoString(cArgs)
|
||||
c := callbackLookup(uintptr(handle)).(*AssuanInquireCallback)
|
||||
h := *(*cgo.Handle)(handle)
|
||||
c := h.Value().(*AssuanInquireCallback)
|
||||
if *c == nil {
|
||||
return 0
|
||||
}
|
||||
(*c)(name, args)
|
||||
if err := (*c)(name, args); err != nil {
|
||||
return C.gpgme_error(C.GPG_ERR_USER_1)
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
|
|
@ -624,11 +647,14 @@ func gogpgme_assuan_inquiry_callback(handle unsafe.Pointer, cName *C.char, cArgs
|
|||
func gogpgme_assuan_status_callback(handle unsafe.Pointer, cStatus *C.char, cArgs *C.char) C.gpgme_error_t {
|
||||
status := C.GoString(cStatus)
|
||||
args := C.GoString(cArgs)
|
||||
c := callbackLookup(uintptr(handle)).(*AssuanStatusCallback)
|
||||
h := *(*cgo.Handle)(handle)
|
||||
c := h.Value().(*AssuanStatusCallback)
|
||||
if *c == nil {
|
||||
return 0
|
||||
}
|
||||
(*c)(status, args)
|
||||
if err := (*c)(status, args); err != nil {
|
||||
return C.gpgme_error(C.GPG_ERR_USER_1)
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
|
|
|
|||
1
vendor/github.com/proglottis/gpgme/unset_agent_info.go
generated
vendored
1
vendor/github.com/proglottis/gpgme/unset_agent_info.go
generated
vendored
|
|
@ -1,3 +1,4 @@
|
|||
//go:build !windows
|
||||
// +build !windows
|
||||
|
||||
package gpgme
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue