acvp: allow passing custom subprocess I/O. Change-Id: Ic87cdc84b7684c344af7aa2ef8673264d402c492 Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/37164 Reviewed-by: Adam Langley <alangley@gmail.com>
diff --git a/util/fipstools/acvp/acvptool/subprocess/subprocess.go b/util/fipstools/acvp/acvptool/subprocess/subprocess.go index 404569f..3550b4d 100644 --- a/util/fipstools/acvp/acvptool/subprocess/subprocess.go +++ b/util/fipstools/acvp/acvptool/subprocess/subprocess.go
@@ -36,10 +36,16 @@ return nil, err } + return NewWithIO(cmd, stdin, stdout), nil +} + +// NewWithIO returns a new Subprocess middle layer with the given ReadCloser and +// WriteCloser. The returned Subprocess will call Wait on the Cmd when closed. +func NewWithIO(cmd *exec.Cmd, in io.WriteCloser, out io.ReadCloser) *Subprocess { m := &Subprocess{ - cmd: cmd, - stdin: stdin, - stdout: stdout, + cmd: cmd, + stdin: in, + stdout: out, } m.primitives = map[string]primitive{ @@ -52,7 +58,7 @@ "ACVP-AES-CBC": &blockCipher{"AES-CBC", 16, true, m}, } - return m, nil + return m } // Close signals the child process to exit and waits for it to complete.