OSSCA Chromium

기여 목록 / 8505842

device_signals: migrate to crypto/hash APIs

SecurityrefactorMerged

components/device_signals에서 쓰던 crypto/sha2.h의 crypto::SHA256HashString()을 crypto/hash.h의 crypto::hash::Sha256()으로 migration했습니다. 2파일 +6/−4.

문제 설명

  • issue url: https://crbug.com/372283556
  • //crypto 모듈은 sha2.h, secure_hash.h를 제거하고 hash.h로 옮기는 작업을 진행 중입니다.
  • components/device_signals의 mac, win platform delegate가 인증서 SPKI의 SHA-256 해시를 구할 때 아직 crypto::SHA256HashString()을 사용하고 있었습니다.

해결 내용

  1. mac_platform_delegate.mm, win_platform_delegate.cc의 #include "crypto/sha2.h"를 #include "crypto/hash.h"로 바꿨습니다.
  2. crypto::SHA256HashString()은 std::string을 반환하지만 crypto::hash::Sha256()은 고정 길이 바이트 배열을 반환합니다. 호출부가 계속 std::string을 기대하므로 base::as_string_view()로 감싼 뒤 std::string으로 변환했습니다.
  3. win 쪽은 base::as_string_view()를 쓰기 위해 base/strings/string_view_util.h include를 추가했습니다. mac 쪽은 이미 include되어 있었습니다.
-  public_keys.hashes.push_back(crypto::SHA256HashString(spki_bytes));
+  public_keys.hashes.push_back(
+      std::string(base::as_string_view(crypto::hash::Sha256(spki_bytes))));
-      ret.first = crypto::SHA256HashString(spki);
+      ret.first = std::string(base::as_string_view(crypto::hash::Sha256(spki)));

리뷰 과정

  • 기존 리뷰어가 OOO여서 davidben@에게 리뷰를 요청했습니다.

테스트 방법

  • 동작 변경이 없는 API migration이라 새 테스트는 추가하지 않았습니다.
  • PS3 CQ dry run 통과.

참고 자료