You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
set GOTOOLCHAIN=local
set GOPROXY=off
set GOFLAGS=-mod=vendor -trimpath
set CGO_ENABLED=0
set GOFIPS140=certified
go build -ldflags "-s -w -X main.version=1.0.0" -o bin/ ./cmd/...
결과
core 실패: MSVC 링커 link.exe를 찾지 못해 중단됨. 프로젝트 코드의 Windows 호환성 확인 단계까지 진행하지 못함.
host 실패: Windows에서 제공되지 않는 syscall.Socketpair, syscall.Stat_t, syscall.Flock 등의 참조로 컴파일 오류 발생.
@jaewon9892 Windows 환경 테스트 요청 드립니다. 현재 저장소는 draft PR #4 에서 Windows 환경 지원을 위한 v1.1.0 릴리즈를 구현 중에 있습니다. 중요한 핵심 테스트들은 Github CI(Actions)를 통해 Windows 2025, Windows 11 ARM 환경에서 바이너리가 동작하는 것을 확인했으나, 미처 발견하지 못 한 중대한 문제를 검토하기 위해 실제 머신에서의 테스트가 필요합니다.
이 과정은 빠르지만 테스트 환경에선 권장되지 않습니다. 가능한 경우 소스를 직접 빌드해주세요. Visual Studio Build Tools(C++ 워크로드), cmake, NASM(x86_64만), Rust 1.95.0 MSVC, Go 1.27.3 가 필요하나 몇 가지는 이미 설치되어있을 수 있습니다. 이후 make 명령을 통해 빌드하실 수 있습니다. 테스트 스위트까지 돌리기 위해선 소스 빌드가 필요합니다.
테스트는 관리자 권한이 아닌 일반 PowerShell에서 해주세요. 가능하다면 일반 유저 계정(관리자가 아닌 계정)을 사용해주세요. whoami /priv 명령을 통해 SeDebugPrivilege가 Disabled이거나 없는지 확인해주세요. 없거나 Disabled 상태이어야 합니다. 노드 디렉토리는 %LOCALAPPDATA%\pairier\<이름>처럼 NTFS 경로를 사용하며, OneDrive 동기화 폴더와 네트워크 드라이브는 사용하지 않는걸 권장드립니다.
준비가 완료된 경우 다음과 같이 테스트를 진행해주세요.
# kmsctl 바이너리 버전 확인
PS>kmsctl.exe version
<# 노드 디렉토리 설정 후 kmsctl 바이너리 실행--id 플래그의 경우 다른 이름이어도 됩니다. 혼동만 없도록 해주세요. #>
PS>kmsctl.exe--dir $env:LOCALAPPDATA\pairier\bob init --id bob --pqc
이전 명령에서 설정한 id 를 사용하여 카드 교환을 테스트해주세요. 카드를 만드신 경우 제 환경에서 member add를 진행하겠습니다.
이후 다음과 같이 키 페어(쌍)를 생성해주세요.
PS>kmsctl.exe key gen
그리고 key send/key receive 을 사용하여 저와 양방향으로 키를 교환해주세요. 이 과정과 중간에 산출(출력)된 값은 Discord를 사용하여 저에게 직접 전달해주세요. 절대 이 이슈에 첨부하지 마세요. 이 과정을 오프라인 전달로 인지하겠습니다.
온라인 전달 테스트도 필요합니다. 다음 명령으로 서버를 띄워주세요.
PS>kmsd.exe--listen 0.0.0.0:7443
제 쪽에서 헬스체크(health check)를 진행하겠습니다. Windows 환경에선 inbox 명령을 통해 통신 확인 바랍니다.
그리고 다음 명령을 통해 감사(audit) 테스트를 진행해주세요.
PS> audit verify
PS> audit verify --peer
마지막으로 거부 동작을 확인해주세요. icacls <노드 디렉토리> /grant Users:R 명령을 통해 권한을 하나 추가한 뒤 명령이 store: insecure directory로 중단되는지, UNC 경로를 --dir 플래그로 전달하면 거부되는지 확인해주시고 권한은 /remove Users로 되돌려주세요. 부가적으로 다음 항목도 점검 바랍니다.
프로세스 DACL 확인 (이건 CI에서 못 한 항목임)
kmsd.exe를 띄운 상태에서 같은 사용자의 비상승 세션으로 작업 관리자에서 kms-core.exe의 "덤프 파일 만들기"를 시도하여 액세스 거부가 나오는지 확인해주세요.
소스 빌드를 했다면 더 정확합니다. core(Rust)에서 cargo test --frozen -p kms-sys process_dacl -- --nocapture를 실행하여 "skipping the access check" 출력 없이 통과해야 합니다.
위 모든 작업을 직접 시도하실 수도 있겠으나, AI Agent를 사용해도 문제는 없습니다. 진행 상황을 이슈로 보고하고자 하는 경우 "안전한" 출력(또는 산출)부만 게시해주시길 바라며, 제 환경과 상호 작용 또는 교환 등이 필요한 경우는 오프라인을 가정한 Discord 애플리케이션을 사용해주세요. Discord 는 E2EE를 지원하여 안전합니다.
또한 바이너리 사용법에 대해 궁금하신 경우 USAGE_KR.md 문서를 확인하실 수 있습니다.
Activity
jaewon9892 commentedon Oct 15, 2026
Windows 빌드 실패 보고
빌드 대상
Windows CMD에서 Rust core와 Go host의 네이티브 빌드를 시도함.
시도 방법
프로젝트 Makefile의 기본 빌드 명령을 CMD 환경에 맞춰 실행함.
core
cargo +1.95.0 build --release --frozen -p kms-core --features pqc

host
set GOTOOLCHAIN=local
set GOPROXY=off
set GOFLAGS=-mod=vendor -trimpath
set CGO_ENABLED=0
set GOFIPS140=certified
go build -ldflags "-s -w -X main.version=1.0.0" -o bin/ ./cmd/...
결과
Co-authored-by: Codex noreply@openai.com
Quant-TheodoreFelix commentedon Oct 15, 2026
windows 지원은 현재로썬 장기적으로 봐야 할 것 같네요.
현재는 코어의 격리 부분이 Unix에만 있는 기능에 의존하기 때문에 unix 쪽 진행이 우선되어야 할 것 같습니다.
[-]Windows 운영체제 동작 테스트 필요[/-][+]Windows 운영체제 지원 및 동작 테스트 필요[/+]Quant-TheodoreFelix commentedon Nov 3, 2026
이 작업은 v1.1.0 작업을 위한 브랜치에서 진행하겠습니다.
이 릴리즈의 핵심은 Windows 환경 지원이 될 것 같네요.
Quant-TheodoreFelix commentedon Nov 3, 2026
@jaewon9892 Windows 환경 테스트 요청 드립니다. 현재 저장소는 draft PR #4 에서 Windows 환경 지원을 위한 v1.1.0 릴리즈를 구현 중에 있습니다. 중요한 핵심 테스트들은 Github CI(Actions)를 통해 Windows 2025, Windows 11 ARM 환경에서 바이너리가 동작하는 것을 확인했으나, 미처 발견하지 못 한 중대한 문제를 검토하기 위해 실제 머신에서의 테스트가 필요합니다.
테스트를 위한 가장 빠른 방법은 PR CI 산출물을 받는 것입니다. https://github.com/Quant-Off/pairier/actions/runs/41609123092 에서 환경에 맞는 산출물을 다운로드 받으신 후, 압축을 해제하여 다음 세 가지 바이너리의 존재 유무를 확인해주세요. 모든 바이너리는 하나의 디렉토리에 속해 있습니다.
이 과정은 빠르지만 테스트 환경에선 권장되지 않습니다. 가능한 경우 소스를 직접 빌드해주세요.
Visual Studio Build Tools(C++ 워크로드),cmake,NASM(x86_64만),Rust 1.95.0 MSVC,Go 1.27.3가 필요하나 몇 가지는 이미 설치되어있을 수 있습니다. 이후make명령을 통해 빌드하실 수 있습니다. 테스트 스위트까지 돌리기 위해선 소스 빌드가 필요합니다.테스트는 관리자 권한이 아닌 일반 PowerShell에서 해주세요. 가능하다면 일반 유저 계정(관리자가 아닌 계정)을 사용해주세요.
whoami /priv명령을 통해SeDebugPrivilege가 Disabled이거나 없는지 확인해주세요. 없거나 Disabled 상태이어야 합니다. 노드 디렉토리는%LOCALAPPDATA%\pairier\<이름>처럼 NTFS 경로를 사용하며, OneDrive 동기화 폴더와 네트워크 드라이브는 사용하지 않는걸 권장드립니다.준비가 완료된 경우 다음과 같이 테스트를 진행해주세요.
바이너리 실행 출력에서
core_fips false, go_fips true를 확인하고,icacls $env:LOCALAPPDATA\pairier\bob에 본인 계정과 SYSTEM만 보이는지 확인해주세요.이전 명령에서 설정한 id 를 사용하여 카드 교환을 테스트해주세요. 카드를 만드신 경우 제 환경에서
member add를 진행하겠습니다.이후 다음과 같이 키 페어(쌍)를 생성해주세요.
그리고
key send/key receive을 사용하여 저와 양방향으로 키를 교환해주세요. 이 과정과 중간에 산출(출력)된 값은 Discord를 사용하여 저에게 직접 전달해주세요. 절대 이 이슈에 첨부하지 마세요. 이 과정을 오프라인 전달로 인지하겠습니다.온라인 전달 테스트도 필요합니다. 다음 명령으로 서버를 띄워주세요.
제 쪽에서 헬스체크(health check)를 진행하겠습니다. Windows 환경에선
inbox명령을 통해 통신 확인 바랍니다.그리고 다음 명령을 통해 감사(audit) 테스트를 진행해주세요.
마지막으로 거부 동작을 확인해주세요.
icacls <노드 디렉토리> /grant Users:R명령을 통해 권한을 하나 추가한 뒤 명령이store: insecure directory로 중단되는지, UNC 경로를--dir플래그로 전달하면 거부되는지 확인해주시고 권한은/remove Users로 되돌려주세요. 부가적으로 다음 항목도 점검 바랍니다.프로세스 DACL 확인 (이건 CI에서 못 한 항목임)
kmsd.exe를 띄운 상태에서 같은 사용자의 비상승 세션으로 작업 관리자에서kms-core.exe의 "덤프 파일 만들기"를 시도하여 액세스 거부가 나오는지 확인해주세요.core(Rust)에서cargo test --frozen -p kms-sys process_dacl -- --nocapture를 실행하여 "skipping the access check" 출력 없이 통과해야 합니다.위 모든 작업을 직접 시도하실 수도 있겠으나, AI Agent를 사용해도 문제는 없습니다. 진행 상황을 이슈로 보고하고자 하는 경우 "안전한" 출력(또는 산출)부만 게시해주시길 바라며, 제 환경과 상호 작용 또는 교환 등이 필요한 경우는 오프라인을 가정한 Discord 애플리케이션을 사용해주세요. Discord 는 E2EE를 지원하여 안전합니다.
또한 바이너리 사용법에 대해 궁금하신 경우 USAGE_KR.md 문서를 확인하실 수 있습니다.