35 lines
1.0 KiB
TypeScript
35 lines
1.0 KiB
TypeScript
import { ChallengeAlgorithm } from '@impost/lib';
|
|
import { defineEventHandler } from 'h3'
|
|
|
|
export default defineEventHandler((event) => {
|
|
let difficulty: number;
|
|
|
|
switch (config.algorithm) {
|
|
case ChallengeAlgorithm.SHA256:
|
|
case ChallengeAlgorithm.Argon2:
|
|
switch (config.strategy) {
|
|
case 'leading_zeroes':
|
|
difficulty = config.leading_zeroes.difficulty!;
|
|
break;
|
|
case 'target_number':
|
|
difficulty = config.target_number.max_number!;
|
|
break;
|
|
}
|
|
break;
|
|
case ChallengeAlgorithm.kCTF:
|
|
difficulty = config.kctf.difficulty!;
|
|
break;
|
|
default:
|
|
throw createError({
|
|
statusCode: 500,
|
|
statusMessage: 'Unknown algorithm',
|
|
})
|
|
break;
|
|
}
|
|
|
|
return {
|
|
difficulty,
|
|
algorithm: config.algorithm,
|
|
strategy: config.strategy || undefined,
|
|
}
|
|
}) |