> For the complete documentation index, see [llms.txt](https://docs.medcrypt.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.medcrypt.com/ko/guardian/api-overview/api-reference/classes/classmedcrypt-guardian-secureoperation.md).

# medcrypt::guardian::SecureOperation

이름이 지정된 독립 실행형 작업입니다.

`#include <SecureOperation.h>`

## 공개 함수

|                                                                                                       | 이름                                                                                                                                                                                                                                     |
| ----------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|                                                                                                       | <p><a href="#function-~secureoperation"><strong>\~SecureOperation</strong></a>()<br>소멸자입니다.</p>                                                                                                                                        |
| [상태](/ko/guardian/api-overview/api-reference/namespaces/namespacemedcrypt-guardian.md#typedef-status) | <p><a href="#function-sign"><strong>Sign</strong></a>(const char <em>in\_data, const size\_t & in\_data\_size, char</em> out\_signature, size\_t \* io\_signature\_size)<br>서명을 생성합니다.</p>                                             |
| [상태](/ko/guardian/api-overview/api-reference/namespaces/namespacemedcrypt-guardian.md#typedef-status) | <p><a href="#function-verify"><strong>Verify</strong></a>(const char <em>in\_data, const size\_t & in\_data\_size, const char</em> in\_signature, const size\_t & in\_signature\_size, bool \* out\_is\_verified)<br>기존 서명을 검증합니다.</p> |
| [상태](/ko/guardian/api-overview/api-reference/namespaces/namespacemedcrypt-guardian.md#typedef-status) | <p><a href="#function-signaturemultipartinit"><strong>SignatureMultipartInit</strong></a>(const bool & in\_force =true)<br>멀티파트 서명/검증을 준비합니다.</p>                                                                                      |
| [상태](/ko/guardian/api-overview/api-reference/namespaces/namespacemedcrypt-guardian.md#typedef-status) | <p><a href="#function-signaturemultipartupdate"><strong>SignatureMultipartUpdate</strong></a>(const char \* in\_data, const size\_t & in\_data\_size)<br>멀티파트 서명/검증 작업에 데이터를 추가합니다.</p>                                                |
| [상태](/ko/guardian/api-overview/api-reference/namespaces/namespacemedcrypt-guardian.md#typedef-status) | <p><a href="#function-signaturemultipartsignfinal"><strong>SignatureMultipartSignFinal</strong></a>(char <em>out\_signature, size\_t</em> io\_signature\_size)<br>앞서 제공된 데이터를 사용해 서명을 생성합니다.</p>                                       |
| [상태](/ko/guardian/api-overview/api-reference/namespaces/namespacemedcrypt-guardian.md#typedef-status) | <p><a href="#function-signaturemultipartverifyfinal"><strong>SignatureMultipartVerifyFinal</strong></a>(const char <em>in\_signature, const size\_t & in\_signature\_size, bool</em> out\_is\_verified)<br>앞서 제공된 데이터의 서명을 검증합니다.</p>  |

## 공개 함수 문서

### \~SecureOperation 함수

```cpp
~SecureOperation()
```

소멸자입니다.

**매개변수**:

* **없음**

**반환값**: 없음

소멸자는 포함된 객체를 메인 [Guardian](/ko/guardian/api-overview/api-reference/classes/classmedcrypt-guardian-guardian.md) 스레드를 실행합니다.

### Sign 함수

```cpp
Status Sign(
    const char * in_data,
    const size_t & in_data_size,
    char * out_signature,
    size_t * io_signature_size
)
```

서명을 생성합니다.

**매개변수**:

* **in\_data** 바이너리 데이터 버퍼
* **in\_data\_size** in\_data의 바이트 수
* **out\_signature** 바이너리 데이터 버퍼
* **io\_signature\_size** out\_signature 버퍼의 크기를 지정합니다. 반환 시 out\_signature에 담긴 데이터의 크기 또는 필요한 out\_signature 크기로 설정됩니다.

**반환값**:

* **OK** out\_signature에 서명이 채워집니다.
* **FAIL** 일반 오류입니다. 로그를 확인하세요.
* **BADPARAM** 제공된 매개변수가 nullptr이거나 크기가 0입니다.
* **MISCONFIGURED** 이 보안 작업은 서명을 사용하도록 구성되어 있지 않습니다.
* **OUTOFMEMORY** out\_signature의 크기가 너무 작습니다. 필요한 크기는 io\_signature\_size를 참조하십시오.

**반환값**: [medcrypt::guardian::Status](/ko/guardian/api-overview/api-reference/namespaces/namespacemedcrypt-guardian.md#typedef-status)

로드된 프로필을 기반으로 서명이 생성되었습니다.

### Verify 함수

```cpp
Status Verify(
    const char * in_data,
    const size_t & in_data_size,
    const char * in_signature,
    const size_t & in_signature_size,
    bool * out_is_verified
)
```

기존 서명을 확인합니다.

**매개변수**:

* **in\_data** 바이너리 데이터 버퍼
* **in\_data\_size** in\_data의 바이트 수
* **in\_signature** 바이너리 데이터 버퍼
* **in\_signature\_size** in\_signature의 바이트 수
* **out\_is\_verified** in\_data가 in\_signature와 일치하면 true

**반환값**:

* **OK** 데이터에 대해 서명을 확인합니다. 서명이 데이터와 일치하는지는 out\_is\_verified를 확인하세요.
* **FAIL** 일반 오류
* **BADPARAM** 제공된 매개변수가 nullptr이거나 크기가 0입니다.
* **MISCONFIGURED** 이 보안 작업은 서명을 사용하도록 구성되어 있지 않습니다.

**반환값**: [medcrypt::guardian::Status](/ko/guardian/api-overview/api-reference/namespaces/namespacemedcrypt-guardian.md#typedef-status)

로드된 프로필을 기반으로 확인합니다.

참고: 서명과 데이터가 일치하지 않더라도 확인 작업이 성공적으로 수행되면 반환값은 OK입니다. 데이터와 서명이 일치하는지는 out\_is\_verified를 확인하세요.

### function SignatureMultipartInit

```cpp
Status SignatureMultipartInit(
    const bool & in_force =true
)
```

다중 파트 서명/확인 작업을 준비합니다.

**매개변수**:

* **in\_force** 선택적 매개변수입니다. true로 설정하면 다른 작업이 이미 진행 중이더라도 새 작업을 시작합니다.

**반환값**:

* **OK** 보안 작업이 준비되어 서명/확인할 데이터를 받을 수 있습니다.
* **FAIL** 일반 오류
* **MISCONFIGURED** 이 보안 작업은 서명을 사용하도록 구성되어 있지 않습니다.
* **DENIED** 다른 보안 작업이 이미 진행 중입니다.

**반환값**: [medcrypt::guardian::Status](/ko/guardian/api-overview/api-reference/namespaces/namespacemedcrypt-guardian.md#typedef-status)

다중 파트 서명 또는 다중 파트 서명 확인을 위한 보안 작업을 초기화합니다.

### function SignatureMultipartUpdate

```cpp
Status SignatureMultipartUpdate(
    const char * in_data,
    const size_t & in_data_size
)
```

다중 파트 서명/확인 작업에 데이터를 추가합니다.

**매개변수**:

* **in\_data\_size** in\_data의 바이트 수
* **in\_data** 바이너리 데이터 버퍼

**반환값**:

* **OK** 데이터가 성공적으로 추가되었습니다.
* **FAIL** 일반 오류
* **BADPARAM** in\_data가 nullptr이거나 in\_data\_size가 0입니다.
* **DENIED** 이 보안 작업은 다중 파트 서명/확인 작업으로 초기화되지 않았습니다.

**반환값**: [medcrypt::guardian::Status](/ko/guardian/api-overview/api-reference/namespaces/namespacemedcrypt-guardian.md#typedef-status)

전체 데이터 또는 청크 단위로 데이터를 보안 작업에 추가한 다음, Complete 함수 중 하나를 호출하여 프로세스를 완료합니다.

### function SignatureMultipartSignFinal

```cpp
Status SignatureMultipartSignFinal(
    char * out_signature,
    size_t * io_signature_size
)
```

이전에 제공된 데이터로 서명을 생성합니다.

**매개변수**:

* **io\_signature\_size** out\_signature 버퍼의 크기를 지정합니다. 반환 시 out\_signature에 담긴 데이터의 크기 또는 필요한 out\_signature 크기로 설정됩니다.
* **out\_signature** 바이너리 데이터 버퍼

**반환값**:

* **OK** out\_signature에 서명이 채워집니다.
* **FAIL** 일반 오류
* **BADPARAM** out\_signature가 nullptr이거나 io\_signature\_size가 nullptr 또는 0입니다.
* **DENIED** 다중 파트 서명이 초기화되지 않았습니다.
* **OUTOFMEMORY** out\_signature의 크기가 너무 작습니다. 필요한 크기는 io\_signature\_size를 참조하십시오.

**반환값**: [medcrypt::guardian::Status](/ko/guardian/api-overview/api-reference/namespaces/namespacemedcrypt-guardian.md#typedef-status)

### function SignatureMultipartVerifyFinal

```cpp
Status SignatureMultipartVerifyFinal(
    const char * in_signature,
    const size_t & in_signature_size,
    bool * out_is_verified
)
```

이전에 제공된 데이터를 사용하여 서명을 확인합니다.

**매개변수**:

* **in\_signature\_size** in\_signature의 바이트 수
* **in\_signature** 바이너리 데이터 버퍼
* **out\_is\_verified** in\_data가 in\_signature와 일치하면 true

**반환값**:

* **OK** out\_verified는 서명이 데이터와 일치하는지를 나타냅니다.
* **FAIL** 일반 오류
* **BADPARAM** in\_signature 또는 out\_is\_verified가 nullptr이거나 in\_signature\_size가 0입니다.
* **거부됨** 이 보안 작업에 추가된 데이터가 없습니다

**반환값**: [medcrypt::guardian::Status](/ko/guardian/api-overview/api-reference/namespaces/namespacemedcrypt-guardian.md#typedef-status)

## 디버깅 및 로깅

Guardian은 로그 파일을 생성하지 않습니다. 대신 로깅은 애플리케이션에서 제어합니다.

* Guardian은 로그를 다음으로 출력합니다: `stdout` 및 `stderr`이러한 로그는 실행 중인 애플리케이션의 터미널/CLI에 표시됩니다. 출력에서 특정 오류 코드나 연결 실패를 확인하세요.
* **사용자 지정 로깅:** 다음을 사용하여 `SetLoggingCallback` 로그 메시지를 콜백 함수로 리디렉션할 수 있습니다. 이렇게 하면 터미널 출력이 중단되고 사용자 지정 로그 처리가 가능해집니다.
* **로그 제어:** 애플리케이션에서 로그 수준과 상세도를 제어할 수 있습니다.
* **Guardian Cloud UI**: Guardian Cloud 인터페이스에서 추가 오류 세부 정보와 프로비저닝 상태를 확인하세요.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.medcrypt.com/ko/guardian/api-overview/api-reference/classes/classmedcrypt-guardian-secureoperation.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
