자유롭게 질의 및 응답을 할 수 있는 게시판입니다. 개발자 여러분의 답변이 큰 도움이 됩니다. 
  • 제품설치/등록 오류 문의: 설치/등록 Q&A 이용 (제품 구매 고객 한정)

본 게시판은 개발자들이 자유롭게 질문과 답변을 공유하는 게시판입니다.
* 따라서 최대한 정중하게 질문을 올려 주세요.
* 질문을 상세히 작성해 주실 수록 좋은 답변이 올라 옵니다.
* 다른 분들도 참고할 수 있도록 결과 댓글 필수(또는 감사 댓글)
(결과 댓글을 달지 않는 경우 다음 질문에 대한 답변이 달리지 않는 불이익이 있을 수 있습니다.)
-----------------------------------------------------------------------------------------------
암호화를 위해서 libsodium을 가지고 비공개키, 공개키를 만들고 암호화하는 작업을 해보고 있습니다.

다행히 델파이 버전이 있어서 windows에서는 그걸 이용해서 암호화하는 것을 성공했습니다만 모바일앱에도 같은 암호화 방법을 쓰려고 하니 기존의 dll이 windows만 지원하고 있어서 사용을 못하더군요.

그래서 고민을 하다가 java jni 버전을 가지고 와서 jar 파일을 만들고 java2op를 가지고 브릿지 파일(Android.JNI.libsodium.pas)까지 만들어서 작동을 시켜봤습니다. 물론 필요한 uses들을 넣었고요.

코드는 아래와 같습니다. 

그런데 신기하게도 SECRETKEY_BYTES값은 받아오는데 randombytes와 같은 함수는 invoke error: method not found를 계속해서 뱉어내는데 해결을 못하고 있습니다. classes.dex 문제인듯 하기도 하고.... 진전이 없습니다.

제가 델파이 초보라 아는게 이 정도인데 도움 부탁 좀 드려도 될까요?

뭐가 잘 못된걸까요?

 

-- 아래 --

 

unit android_sodium;

 

interface

 

uses

  System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,

  FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.Objects,

  Android.JNI.libsodium, Androidapi.Helpers, Androidapi.JNIBridge,

  Androidapi.JNI.JavaTypes, Androidapi.JNI.provider, FMX.helpers.Android,

  FMX.Controls.Presentation, FMX.StdCtrls;

 

type

  TForm1 = class(TForm)

    Button1: TButton;

    Text1: TText;

    Text2: TText;

    procedure Button1Click(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end;

 

var

  Form1: TForm1;

 

implementation

 

{$R *.fmx}

 

 

procedure TForm1.Button1Click(Sender: TObject);

var

  sk: TJavaArray<byte>;

  SecByte: integer;

  Sodium : JSodium;

 

begin

//  TJSodium.JavaClass.init;

  SecByte := TJSodiumConstants.JavaClass.SECRETKEY_BYTES;

  Text1.Text := IntToStr(SecByte);

  sk := TJavaArray<byte>.Create(SecByte*2);

  Text2.Text := sk.Items[0].ToString;

 

// Test End

 

// Testing

  TJSodium.JavaClass.randombytes(sk, SecByte*2);

 

 

end;

 

end.

 
번호 제목 글쓴이 날짜 조회 수
공지 [프로그래밍 강의] 2021.6~2021.12 관리자 2015.01.22 39962
공지 유용한 관련 사이트 관리자2 2014.03.20 79504
1832 델파이 10.2 도쿄에서 comport가 실행이 안되는 이유는 무엇일까요? [2] file 덩어리2 2019.10.21 493
1831 도킹창 이동시 버벅거리는 현상 [1] 손승규 2017.04.18 494
1830 32/64bit 프로그램-windows 10 SDK 문제 한시민 2018.01.30 494
1829 Project -> Deployment 는 뭐하는곳인가요? [1] 민은기 2015.04.16 494
1828 FireDac 쿼리 실행시 가끔 발생되는 Access Violation을 못잡겠습니다.. [1] 육식육식 2021.01.20 494
1827 데이터스냅 콜백 오류 문의 [3] file 회원 2016.10.14 495
1826 XE 버전과 호환가능한 Windows 버전 알려주세요....ㅜㅜ [5] soo583 2018.03.19 495
1825 ADO, dbExpress FireDAC 20,000건 쿼리시 FireDAC이 제일 느린것이 맞나요? file 미스터몽키 2017.02.19 495
1824 APP STORE IOS....앱 아이콘을 Xcode의 자산 카탈로그에 추가해야합니다 문제 [1] 성후아빠 2020.07.07 495
1823 delphi 10.3.2 TRestClient 구조가 변경된듯 [1] 미스터몽키 2019.09.22 496
1822 파이어몽키 소켓통신 - 질문수정 [2] hs 2019.12.17 496
1821 10.4 Sydney 코드 인사이트 문제 [1] 불나방 2020.06.15 497
1820 일정시간 경과후 소켓에러 발생 [3] file 사랑남 2015.09.18 497
1819 FastReport 관련 문의 [1] 쿤이 2021.07.12 497
1818 안드로이드 API Level 26 문제 [1] 토끼왕 2018.10.06 498
1817 스마트폰에서 폼 종료 방법을 알려주세요. [1] 거북이 2015.11.03 498
1816 FireDac 에서 informix 연결이 안됩니다.. 도와주세요 [2] file 천공인 2020.09.18 498
1815 docking or Handle 문제 문의 [1] 마이밥 2017.11.03 499
1814 Rio10.3.2 업그래이드 후 코드인사이트 먹통 [1] file 개성산전 2019.07.19 499
1813 uses절에 포함된 유닛의 타입을 가져다 쓰려면 어떻게 해야 하나요? [3] 한태수 2019.09.16 499