본문 바로가기

운동하는 개발자/Lazarus

lazarus dcpcrypt 암호화 오작동 (use external debug symbols file)

728x90

소스 merge후부터 http 통신이 100%실패하는 문제가 있었다

서버측에서 확인해보니 복호화 후 데이터가 비정상적이였으며 결론적으론 암호화에 실패한것이다
(별도로 에러가 발생하지도 않았다..)

merge할 때 놓친 코드가 있나 몇번을 다시 찾아봐도 찾을 수 없었고 전문 생성시 잘못된것이 있나 로그를 엄청나게 추가해봐도 특이점이 없었다 
그럼 정상작동하는 프로젝트와 프로젝트 옵션을 하나하나 비교해보는데..

최근 merge작업 후 각각의 프로젝트가 다른 모드에서 빌드되도록 빌드모드를 추가했었다
project->project options->compiler Options에서 추가하였는데 이때 단순히 +버튼을 눌러 추가 생성하면 기존 설정을 복사해와 추가 생성되는데 'Create Debug and Release modes'버튼을 누르면 디버깅 설정들이 defualt 설정값으로 생성되는것이였다

설정을 하나씩 풀어가며 정상 프로젝트와 비교하며 돌린결과 원인은 'use external debug symbols file (-Xg)' 설정이였다 해당 설정의 체크를 풀고 정상적으로 통신하는것이 확인되었다

해당 정보를 찾아봐도 외부 디버거 심폴파일을 사용하는게 암호화가 오작동하는것과 무슨차이인지 해당 암호화 라이브러리에 외부 디버거 심볼파일이 없는데... 여튼 이건 아니겠지 라는 생각에 찾는데 상당히 시간이 소요되었다
단순히 lazarus 버그인듯하다..

암호화 라이브러리 사용 모듈 : dcpcrypt-2.0.4.1

가운데에 있다 Use exter~~~


 

728x90